freydis 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0381ec85064f282916907626e1a1783ee8a86ce5df1769deb91f4e1b0e5eb4dc'
4
- data.tar.gz: 8c100e7428ec1fc7261a271a677d77fafe84b337541b507c8a9c71d964524e10
3
+ metadata.gz: 1b765713da6ebbf003f0234452f930e884ff398ea0cfa7526a24e5949a2eca9c
4
+ data.tar.gz: 0e0f5d68bf55b73083386590e0be88267f5c30863b6494700c61ca7befd4c2d1
5
5
  SHA512:
6
- metadata.gz: 135daf7438ab4439396d45a99dc2300c916edcb2d2fcdef97dbaf907c19add34503d027b3b4d51836b92aaca979b5953d674609e411c1b1249bb0d589938b4e3
7
- data.tar.gz: 8a0e398ca35e07f161bb0c02a0c33bbe68c09f16f492633a36707304720bb8690c41e087dbe34bfc61be410fe23e73af663c349d464cab5c95a27bdc6a0b563e
6
+ metadata.gz: 5b31ed0d011a8ac7534f81692adcafd1114ac92ab2c56cfa84eb02d46987221d3fc20476e9d610e028fc40fa255d8b332c12a20ee62edb5b9ec02341a05ee278
7
+ data.tar.gz: 0764c108b98a162b4f605536bbf2104f2f3292e035ece96cbb678b56b2def060e9aeff78a6d31bbe12206ff8ae44439946f7474c81a94263533fd0db9ed8ca13
checksums.yaml.gz.sig ADDED
Binary file
data.tar.gz.sig ADDED
Binary file
data/README.md CHANGED
@@ -46,7 +46,7 @@ Freydis will use `cryptsetup` with `luks2` and format the disk with `ext4`:
46
46
  $ freydis --encrypt
47
47
 
48
48
  #### 0x03 - Other options
49
- Make an incremental backup, will copy all `paths` include in the config file:
49
+ Make an incremental backup with `rsync`, will copy all `paths` include in the config file:
50
50
 
51
51
  $ freydis --backup
52
52
 
data/bin/freydis CHANGED
@@ -1,53 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
- require "freydis"
3
-
4
- puts "Freydis v." + Freydis::VERSION
5
2
 
6
- cli = Freydis::Options.new(ARGV)
7
- data = Freydis::Data.new
8
- data.load
9
-
10
- if cli.disk
11
- data.options[:disk] = cli.disk
12
- end
3
+ require "freydis"
13
4
 
14
- if cli.init
15
- Freydis::Init.run(data.options)
16
- data.save
17
- exit 0
18
- end
5
+ config_file = "#{ENV['HOME']}/.config/freydis/freydis.yaml"
19
6
 
20
- if !cli.backup && !cli.restore && !cli.encrypt &&
21
- !cli.open && !cli.close
22
- puts "Ok... glad to see you too."
23
- exit 1
24
- end
7
+ freydis = Freydis::Main.new(
8
+ :cli => Freydis::Options.new(ARGV, config_file),
9
+ :config => config_file
10
+ )
25
11
 
26
- if cli.encrypt
27
- puts "Encrypting disk #{data.options[:disk]}..."
28
- disk = Freydis::Disk.new(data.options[:disk])
29
- disk.encrypt(data)
30
- data.save
31
- elsif cli.backup
32
- puts "Saving..."
33
- disk = Freydis::Disk.new(data.options[:disk])
34
- disk.open(data)
35
- rsync = Freydis::Rsync.new(data)
36
- rsync.backup
37
- disk.close(data)
38
- elsif cli.restore
39
- puts "Restoring..."
40
- disk = Freydis::Disk.new(data.options[:disk])
41
- disk.open(data)
42
- rsync = Freydis::Rsync.new(data)
43
- rsync.restore
44
- disk.close(data)
45
- elsif cli.open
46
- puts "Opening disk #{data.options[:disk]}."
47
- disk = Freydis::Disk.new(data.options[:disk])
48
- disk.open(data)
49
- elsif cli.close
50
- puts "Closing disk #{data.options[:disk]}."
51
- disk = Freydis::Disk.new(data.options[:disk])
52
- disk.close(data)
53
- end
12
+ freydis.start
13
+ freydis.bye
data/lib/freydis.rb CHANGED
@@ -3,10 +3,98 @@ require_relative 'freydis/options'
3
3
  require_relative 'freydis/init'
4
4
  require_relative 'freydis/data'
5
5
  require_relative 'freydis/disk'
6
+ require_relative 'freydis/disk_luks'
6
7
  require_relative 'freydis/cryptsetup'
7
8
  require_relative 'freydis/rsync'
8
9
  require_relative 'freydis/guard'
10
+ require_relative 'freydis/error'
9
11
 
10
12
  module Freydis
13
+ class Main
14
+ def initialize(args)
15
+ @config = args[:config]
16
+ @cli = args[:cli].options
17
+ @disk = @cli[:disk]
18
+
19
+ Freydis::Guard.disk(@cli[:disk])
20
+ end
21
+
22
+ def start
23
+ init_config
24
+ encrypt_disk
25
+ backup
26
+ restoring
27
+ opening
28
+ closing
29
+ save if @cli[:save]
30
+ end
31
+
32
+ def bye
33
+ puts
34
+ puts "Bye !"
35
+ exit
36
+ end
37
+
38
+ private
39
+
40
+ def init_config
41
+ return unless @cli[:init]
42
+ Init.run(@cli)
43
+ save
44
+ end
45
+
46
+ def encrypt_disk
47
+ return unless @cli[:encrypt]
48
+ puts "Encrypting disk #{@disk}..."
49
+ disk = Disk.new(@disk)
50
+ disk.encrypt(@data)
51
+ end
52
+
53
+ def backup
54
+ return unless @cli[:backup]
55
+ raise ArgumentError, "No paths to backup" unless @cli[:paths]
56
+ raise ArgumentError, "No paths to backup" if @cli[:paths] === []
57
+
58
+ puts " ==> Backup on #{@cli[:disk]}..."
59
+ disk = DiskLuks.new(@cli)
60
+ disk.open
61
+ rsync = Rsync.new(@cli)
62
+ rsync.backup
63
+ disk.close
64
+ end
65
+
66
+ def restoring
67
+ return unless @cli[:restore]
68
+ puts
69
+ puts " ===> Restoring..."
70
+ disk = DiskLuks.new(@cli)
71
+ disk.open
72
+ rsync = Rsync.new(@cli)
73
+ rsync.restore
74
+ disk.close
75
+ end
76
+
77
+ def opening
78
+ return unless @cli[:open]
79
+ puts
80
+ puts " ===> Opening disk #{@disk}."
81
+ disk = DiskLuks.new(@cli)
82
+ disk.open
83
+ end
84
+
85
+ def closing
86
+ return unless @cli[:close]
87
+ puts
88
+ puts " ===> Closing disk #{@disk}."
89
+ disk = DiskLuks.new(@cli)
90
+ disk.close
91
+ end
92
+
93
+ def save
94
+ puts
95
+ puts " ===> Saving options to #{@config}..."
96
+ Data.new(@config, @cli).save
97
+ end
98
+ end
11
99
  end
12
100
 
Binary file
@@ -5,16 +5,17 @@ module Freydis
5
5
  def initialize(data)
6
6
  @data = data
7
7
  @dev_ids = [
8
- "/dev/disk/by-id/" + @data.options[:disk_id] ||= " ",
9
- "/dev/disk/by-uuid/" + @data.options[:disk_uuid] ||= " ",
10
- "/dev/disk/by-partuuid/" + @data.options[:disk_partuuid] ||= " ",
11
- "/dev/" + @data.options[:disk]
8
+ "/dev/disk/by-id/" + @data[:disk_id] ||= " ",
9
+ "/dev/disk/by-uuid/" + @data[:disk_uuid] ||= " ",
10
+ "/dev/disk/by-partuuid/" + @data[:disk_partuuid] ||= " ",
11
+ "/dev/" + @data[:disk]
12
12
  ]
13
13
  @mapper_name = "freydis-enc"
14
14
  @mountpoint ="/mnt/freydis"
15
15
  end
16
16
 
17
17
  def encrypt
18
+ puts "Encrypting disk..."
18
19
  @dev_ids.each { |f|
19
20
  if File.exists? f
20
21
  exec "cryptsetup -v --type luks2 --verify-passphrase luksFormat #{f}"
@@ -24,8 +25,9 @@ module Freydis
24
25
  end
25
26
 
26
27
  def open
28
+ puts "Openning disk #{@mapper_name}..."
27
29
  @dev_ids.each { |f|
28
- if File.exists? f
30
+ if File.exist? f
29
31
  exec "cryptsetup -v open #{f} #{@mapper_name}"
30
32
  break if $?.success?
31
33
  end
data/lib/freydis/data.rb CHANGED
@@ -6,21 +6,25 @@ module Freydis
6
6
  class Data
7
7
  attr_accessor :options
8
8
 
9
- def initialize
10
- @config_file = "#{ENV['HOME']}/.config/freydis/freydis.yaml"
11
- @options = {
12
- :disk => "",
13
- :disk_id => "",
14
- :disk_uuid => "",
15
- :disk_partuuid => "",
16
- :paths => []
9
+ def initialize(config_file, data = {})
10
+ @config_file = config_file ||= "#{ENV['HOME']}/.config/freydis/freydis.yaml"
11
+ @options = parse(data)
12
+ end
13
+
14
+ def parse(data)
15
+ disk = data[:disk] ? data[:disk] : ""
16
+ paths = data[:paths] ? data[:paths] : []
17
+ opts = {
18
+ :disk => disk,
19
+ :paths => paths
17
20
  }
21
+ opts
18
22
  end
19
23
 
20
- def load
24
+ def load!
21
25
  if File.exist? @config_file
22
- options_config = YAML.load_file @config_file
23
- @options.merge!(options_config)
26
+ datas = YAML.load_file @config_file
27
+ @options.merge!(datas)
24
28
  else
25
29
  save
26
30
  STDERR.puts "Initialized config at #{@config_file}"
@@ -29,7 +33,7 @@ module Freydis
29
33
 
30
34
  def save
31
35
  conf_dir = "#{ENV['HOME']}/.config/freydis"
32
- Dir.mkdir conf_dir if !Dir.exists? conf_dir
36
+ Dir.mkdir conf_dir unless Dir.exist? conf_dir
33
37
 
34
38
  File.open(@config_file, 'w') { |f|
35
39
  YAML::dump(@options, f)
data/lib/freydis/disk.rb CHANGED
@@ -3,9 +3,8 @@
3
3
  module Freydis
4
4
  class Disk
5
5
  def initialize(dev)
6
- @disk = dev.match(/sd[a-z]{1}/)
6
+ @disk = Freydis::Guard.disk(dev)
7
7
  @dev = "/dev/#{@disk}"
8
- @mountpoint = "/mnt/freydis"
9
8
  end
10
9
 
11
10
  def size
@@ -18,16 +17,14 @@ module Freydis
18
17
 
19
18
  def populate_data(data)
20
19
  puts "Checking IDs on #{@disk}..."
21
- search_uuid(data)
22
- search_id(data)
23
- search_partuuid(data)
20
+ data.options[:disk_uuid] = search_uuid
21
+ data.options[:disk_id] = search_id
22
+ data.options[:disk_partuuid] = search_partuuid
24
23
  end
25
24
 
26
25
  def encrypt(data)
27
- populate_data(data)
26
+ search_id(data)
28
27
  puts "id -> #{data.options[:disk_id]}"
29
- puts "uuid -> #{data.options[:disk_uuid]}"
30
- puts "partuuid -> #{data.options[:disk_partuuid]}"
31
28
  data.save
32
29
 
33
30
  cryptsetup = Freydis::Cryptsetup.new(data)
@@ -37,43 +34,34 @@ module Freydis
37
34
  cryptsetup.open
38
35
  cryptsetup.format
39
36
 
40
- cryptsetup.close
41
- end
42
-
43
- def open(data)
44
- cryptsetup = Freydis::Cryptsetup.new(data)
45
- cryptsetup.close
46
- cryptsetup.open
47
- cryptsetup.mount
48
- end
37
+ populate_data(data)
38
+ puts "uuid -> #{data.options[:disk_uuid]}"
39
+ puts "partuuid -> #{data.options[:disk_partuuid]}"
40
+ data.save
49
41
 
50
- def close(data)
51
- cryptsetup = Freydis::Cryptsetup.new(data)
52
42
  cryptsetup.close
53
43
  end
54
44
 
55
- private
56
-
57
- def search_uuid(data)
58
- Dir.glob("/dev/disk/by-uuid/*").each { |f|
45
+ def search_partuuid
46
+ Dir.glob("/dev/disk/by-partuuid/*").each { |f|
59
47
  if File.readlink(f).match(/#{@disk}/)
60
- data.options[:disk_uuid] = f.delete_prefix("/dev/disk/by-uuid/")
48
+ return f.delete_prefix("/dev/disk/by-partuuid/")
61
49
  end
62
50
  }
63
51
  end
64
52
 
65
- def search_id(data)
66
- Dir.glob("/dev/disk/by-id/*").each { |f|
53
+ def search_uuid
54
+ Dir.glob("/dev/disk/by-uuid/*").each { |f|
67
55
  if File.readlink(f).match(/#{@disk}/)
68
- data.options[:disk_id] = f.delete_prefix("/dev/disk/by-id/")
56
+ return f.delete_prefix("/dev/disk/by-uuid/")
69
57
  end
70
58
  }
71
59
  end
72
60
 
73
- def search_partuuid(data)
74
- Dir.glob("/dev/disk/by-partuuid/*").each { |f|
61
+ def search_id
62
+ Dir.glob("/dev/disk/by-id/*").each { |f|
75
63
  if File.readlink(f).match(/#{@disk}/)
76
- data.options[:disk_partuuid] = f.delete_prefix("/dev/disk/by-partuuid/")
64
+ return f.delete_prefix("/dev/disk/by-id/")
77
65
  end
78
66
  }
79
67
  end
@@ -0,0 +1,37 @@
1
+ # lib/disk_luks.rb
2
+
3
+ module Freydis
4
+ class DiskLuks < Disk
5
+ def initialize(data)
6
+ @data = data
7
+ @disk = data[:disk]
8
+ if @disk
9
+ if File.exist? "/dev/disk/by-id/#{@disk}"
10
+ Freydis::Guard.disk("/dev/disk/by-id/#{@disk}")
11
+ Freydis::Guard.isLuks("/dev/disk/by-id/#{@disk}")
12
+ elsif File.exist? "/dev/#{@disk}"
13
+ Freydis::Guard.disk(@disk)
14
+ Freydis::Guard.isLuks("/dev/#{@disk}")
15
+ else
16
+ puts "#{@disk} value is not supported yet"
17
+ exit
18
+ end
19
+ else
20
+ puts "No disk."
21
+ exit 1
22
+ end
23
+ end
24
+
25
+ def open
26
+ cryptsetup = Freydis::Cryptsetup.new(@data)
27
+ cryptsetup.close
28
+ cryptsetup.open
29
+ cryptsetup.mount
30
+ end
31
+
32
+ def close
33
+ cryptsetup = Freydis::Cryptsetup.new(@data)
34
+ cryptsetup.close
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,10 @@
1
+ # lib/error.rb
2
+
3
+ module Freydis
4
+ class InvalidDisk < StandardError
5
+ end
6
+ class InvalidLuksDev < StandardError
7
+ end
8
+ class InvalidPath < StandardError
9
+ end
10
+ end
data/lib/freydis/guard.rb CHANGED
@@ -1,9 +1,31 @@
1
- module Freydis
2
- module Guard
3
- def self.disk?(name)
4
- raise ArgumentError, "Bad name #{name}, should match with sdX" if !name.match(/^sd[a-z]{1}$/)
5
- raise ArgumentError, "No disk /dev/#{name}" if !File.exist? "/dev/#{name}"
6
- true
1
+ module Freydis::Guard
2
+ def self.disk(name)
3
+ raise Freydis::InvalidDisk, "No disk, use with -d DISK." unless name
4
+ raise Freydis::InvalidDisk, "No disk, use with -d DISK." if name =~ /nil/
5
+ raise Freydis::InvalidDisk, "Bad name #{name}, should match with sd[a-z]" unless name.match(/^sd[a-z]{1}$/)
6
+ raise Freydis::InvalidDisk, "No disk /dev/#{name} available." unless File.exist? "/dev/#{name}"
7
+ name
8
+ rescue Freydis::InvalidDisk => e
9
+ puts "#{e.class} => #{e}"
10
+ exit 1
11
+ end
12
+
13
+ def self.isLuks(disk)
14
+ raise Freydis::InvalidLuksDev, "No disk." unless disk
15
+ raise Freydis::InvalidLuksDev, "#{disk} does not exist." unless File.exist? disk
16
+ sudo = Process.uid != 0 ? 'sudo' : ''
17
+ if !system(sudo, 'cryptsetup', 'isLuks', disk)
18
+ raise Freydis::InvalidLuksDev, "#{disk} is not valid Luks device."
7
19
  end
20
+ rescue Freydis::InvalidLuksDev => e
21
+ puts "#{e.class} => #{e}"
22
+ exit 1
23
+ end
24
+
25
+ def self.path?(p)
26
+ raise Freydis::InvalidPath, "#{p} does not exist." unless File.exist? p
27
+ rescue Freydis::InvalidPath => e
28
+ puts "#{e.class} => #{e}"
29
+ exit 1
8
30
  end
9
31
  end
data/lib/freydis/init.rb CHANGED
@@ -2,9 +2,6 @@
2
2
 
3
3
  module Freydis
4
4
  module Init
5
-
6
- puts "===> Starting Init"
7
-
8
5
  def self.run(options)
9
6
  loop do
10
7
  puts %q{Please select an option:
@@ -15,6 +12,7 @@ module Freydis
15
12
  4. Show options
16
13
  5. Save & Quit}
17
14
 
15
+ print "\n> "
18
16
  case gets.chomp
19
17
  when '1'
20
18
  select_disk(options)
@@ -27,7 +25,6 @@ module Freydis
27
25
  when '4'
28
26
  show_options(options)
29
27
  else
30
- puts "Quit."
31
28
  return
32
29
  end
33
30
  end
@@ -38,18 +35,19 @@ module Freydis
38
35
  def self.select_disk(options)
39
36
  disks_list = Dir.glob("/dev/sd?")
40
37
  puts "Available disks: (only type sdX)"
41
- disks_list.each { |d|
38
+ disks_list.each { |disk_list|
39
+ d = disk_list.delete_prefix("/dev/")
42
40
  your_disk = Freydis::Disk.new(d)
43
41
  puts "+ " + your_disk.complete_info
44
42
  }
45
43
  print "> "
46
44
  answer = $stdin.gets
47
45
  disk = answer.chomp
48
- if File.exist? "/dev/#{disk}"
49
- options[:disk] = disk
46
+ if disk != ''
47
+ options[:disk] = Freydis::Guard::disk(disk)
50
48
  puts "Disk #{disk} added."
51
49
  else
52
- puts "No disk #{disk} found."
50
+ puts "No disk added."
53
51
  end
54
52
  end
55
53
 
@@ -62,7 +60,7 @@ module Freydis
62
60
  puts "Path '#{new_path}' added"
63
61
  display_path(options)
64
62
  else
65
- puts "#{new_path} no found"
63
+ puts "[-] Path no found."
66
64
  end
67
65
  end
68
66
 
@@ -2,18 +2,13 @@ require 'optparse'
2
2
 
3
3
  module Freydis
4
4
  class Options
5
- attr_accessor :init, :backup, :restore, :encrypt,
6
- :open, :close,
7
- :disk
8
-
9
- def initialize(args)
10
- @init = false
11
- @backup = false
12
- @restore = false
13
- @encrypt = false
14
- @open = false
15
- @close = false
16
- @disk = nil
5
+ attr_reader :options
6
+
7
+ def initialize(args, data_file)
8
+ data = Data.new(data_file)
9
+ data.load!
10
+
11
+ @options = data.options
17
12
  parse(args)
18
13
  end
19
14
 
@@ -22,39 +17,61 @@ module Freydis
22
17
  def parse(argv)
23
18
  OptionParser.new do |opts|
24
19
  opts.banner = "Usage: freydis.rb [options]"
20
+ opts.version = VERSION
25
21
 
26
22
  opts.on("-i", "--init", "Create a config file.") do
27
- @init = true
23
+ @options[:init] = true
28
24
  end
29
25
 
30
26
  opts.on("-b", "--backup", "Perform a backup.") do
31
- @backup = true
27
+ @options[:backup] = true
32
28
  end
33
29
 
34
30
  opts.on("-r", "--restore", "Restore saved datas on your system.") do
35
- @restore = true
31
+ @options[:restore] = true
36
32
  end
37
33
 
38
34
  opts.on("-e", "--encrypt", "Encrypt your device.") do
39
- @encrypt = true
35
+ @options[:encrypt] = true
40
36
  end
41
37
 
42
38
  opts.on("-o", "--open", "Open and mount encrypted device at /mnt/freydis.") do
43
- @open = true
39
+ @options[:open] = true
44
40
  end
45
41
 
46
42
  opts.on("-c", "--close", "Umount & close encrypted device.") do
47
- @close = true
43
+ @options[:close] = true
44
+ end
45
+
46
+ opts.on("-d NAME", "--disk NAME", /^sd[a-z]$/, "To use the disk NAME (e.g: sda, sdb).") do |disk|
47
+ @options[:disk] = Freydis::Guard.disk(disk)
48
+ end
49
+
50
+ opts.on("-L", "--path-list", "List all paths from your list.") do
51
+ puts
52
+ puts @options[:paths]
53
+ exit
54
+ end
55
+
56
+ opts.on("-p PATH", "--path-add PATH", String, "Add absolute path PATH to the backup list") do |p|
57
+ Freydis::Guard.path? p
58
+ @options[:paths] << p if !@options[:paths].include? p
59
+ end
60
+
61
+ opts.on("-d PATH", "--path-del PATH", String, "Remove absolute path PATH from the backup list.") do |p|
62
+ Freydis::Guard.path? p
63
+ @options[:paths].delete p if @options[:paths].include? p
48
64
  end
49
65
 
50
- opts.on("-dNAME", "--disk NAME", "To use the disk NAME (e.g: sda, sdb).") do |disk|
51
- @disk = disk if Freydis::Guard.disk? disk
66
+ opts.on("-s", "--save", "Save currents arguments in a config file.") do
67
+ @options[:save] = true
52
68
  end
53
69
 
54
70
  begin
55
71
  opts.parse!(argv)
56
72
  rescue OptionParser::ParseError => e
57
73
  STDERR.puts e.message, "\n", opts
74
+ exit 1
58
75
  end
59
76
  end
60
77
  end
data/lib/freydis/rsync.rb CHANGED
@@ -19,13 +19,13 @@ module Freydis
19
19
  "/home/*/.local/share/Trash/*",
20
20
  "/lost+found",
21
21
  ]
22
- @opts = "-aAXHv"
22
+ @opts = "-aAXHvR"
23
23
  end
24
24
 
25
25
  def backup
26
26
  add_config
27
27
  exil = @exclude_paths * ","
28
- save = @data.options[:paths] * " "
28
+ save = @data[:paths] * " "
29
29
  @opts += " --delete"
30
30
  exec("rsync #{@opts} --exclude={#{exil}} #{save} #{@mountpoint}")
31
31
  end
@@ -38,8 +38,8 @@ module Freydis
38
38
  private
39
39
 
40
40
  def add_config
41
- if !@data.options[:paths].include?("#{ENV['HOME']}/.config/freydis")
42
- @data.options[:paths] << "#{ENV['HOME']}/.config/freydis"
41
+ if !@data[:paths].include?("#{ENV['HOME']}/.config/freydis")
42
+ @data[:paths] << "#{ENV['HOME']}/.config/freydis"
43
43
  end
44
44
  end
45
45
 
@@ -1,4 +1,4 @@
1
1
  module Freydis
2
- VERSION = '0.0.2'.freeze
2
+ VERSION = '0.0.3'.freeze
3
3
  end
4
4
 
metadata CHANGED
@@ -1,15 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: freydis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - szorfein
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
- - certs/szorfein.pem
12
- date: 2021-05-18 00:00:00.000000000 Z
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIETTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1zem9y
14
+ ZmVpbi9EQz1wcm90b25tYWlsL0RDPWNvbTAeFw0yMTA1MTEyMTAzNDZaFw0yMjA1
15
+ MTEyMTAzNDZaMCgxJjAkBgNVBAMMHXN6b3JmZWluL0RDPXByb3Rvbm1haWwvREM9
16
+ Y29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAxCTYZRndCTRy18rE
17
+ exr2wig/staa0G5kt99xqaBYD0dnIRBr/GO5dFntlBVwmefQlTrNbygVUIYTb8Vg
18
+ B1oX3v/LLW9SRQcWaZwou0tARqanm5WhgV1ZYQTs22endTazsDHw0uhM3V+FgDh+
19
+ eR5wM9vU+SkRFHWzjVS1OxyTSCBVWb3+nrYTr/OKZ5Fm3Vo1dEQdwBEWLLXuUBxs
20
+ dWEDmBk7iTJbvNdd5Kk2wfMKRMOl9NGicJl3Cb5yl5ITeZsXdOsrLBBPepTpNeq2
21
+ k1goew3mEd/4pVXrdw6S5Qr6RTbTCLpKNRxWtx01vue9NN1cQ/Ds5FRkCp/Ntw/k
22
+ Xroyofo4MW5fEPq+udgvVpdTfguQkpmuJg7TRiq9F5hDhEMnKUsdM2fSev9u8EvL
23
+ OkidKy8bnhUOoG9qDxEG/IyibjRLl1i5jtyHa8Jb/We8poZ5LI8qjHwMPjTBhDgi
24
+ EzaYV5rLGs5S1/m58XG6a+620x2tcQZph6FFbnQJ8QBuNz6zAgMBAAGjgYEwfzAJ
25
+ BgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUc8XWveAjxS5fVEOZeeZe
26
+ uUQmbhMwIgYDVR0RBBswGYEXc3pvcmZlaW5AcHJvdG9ubWFpbC5jb20wIgYDVR0S
27
+ BBswGYEXc3pvcmZlaW5AcHJvdG9ubWFpbC5jb20wDQYJKoZIhvcNAQELBQADggGB
28
+ AHuRqWvtAx1PSIEcvq1uzgBclzP+Lhp6J1f7McvbfzHAZuLo5Nv9iFHkLl2ad9gx
29
+ p/X2/p8PmgiUNFSXDdB12Pn/VbX4DdoQujwXvmZbQo2KmooklHIhM6AJMafOHW1N
30
+ qjHIwGvMY5bJfn+3qEQNV+yip6KnCUQVklw132IFvdusoBOPfEP48p41deXbIhNP
31
+ GNJQ4qkZfXWdLumikb2Y432kIIeugIIAL57VD+wwDUJ3MciiLufYT7v9WNSFRenV
32
+ JDNGIh3AYiCnNO2DWIArrW6/jaof3A0OnjRQ64vS+EKhZFp8+y6rfC3Clrfjdjse
33
+ a4zH3TI57bnzfkx5xhjhIu6LJnBpk0x8Y/N2kVmwB+GonFiRcVzZpIfOLvy03tn5
34
+ dAHfUn//hrBJAT9EXRHNUoLyEmFsCPabTCXjQH6EM2uBcsrjQN4SlgBNzsKc8bS4
35
+ F9Dl4EPzjBJOgQWf+NxzxNuNKI46Lp5Q8AI+xtDUHAPbSswHa40BA6ChFehP+j0L
36
+ fg==
37
+ -----END CERTIFICATE-----
38
+ date: 2021-07-04 00:00:00.000000000 Z
13
39
  dependencies: []
14
40
  description: " Freydis is a CLI tool to encrypt a disk device, backup and restore
15
41
  easyly. Freydis use `cryptsetup` and `rsync` mainly.\n"
@@ -20,16 +46,15 @@ extensions: []
20
46
  extra_rdoc_files:
21
47
  - README.md
22
48
  files:
23
- - CHANGELOG.md
24
- - LICENSE
25
49
  - README.md
26
- - Rakefile
27
50
  - bin/freydis
28
- - freydis.gemspec
29
51
  - lib/freydis.rb
52
+ - lib/freydis/.options.rb.swp
30
53
  - lib/freydis/cryptsetup.rb
31
54
  - lib/freydis/data.rb
32
55
  - lib/freydis/disk.rb
56
+ - lib/freydis/disk_luks.rb
57
+ - lib/freydis/error.rb
33
58
  - lib/freydis/guard.rb
34
59
  - lib/freydis/init.rb
35
60
  - lib/freydis/options.rb
metadata.gz.sig ADDED
Binary file
data/CHANGELOG.md DELETED
@@ -1,12 +0,0 @@
1
- ## 0.0.2, release 2021/05/18
2
- * New options `--open` and `--close`.
3
- * Encrypt/Decrypt with `cryptsetup`.
4
- * Add Rsync for backup and restore.
5
- * Can add/remove paths with the `--cli`.
6
- * Can (u)mount the encrypted device at the default `/mnt/freydis`.
7
- * Checking all ID (partuuid, uuid, id) from a given device.
8
- * YAML config file in ~/.config/freydis/freydis.yaml.
9
-
10
- ## 0.0.1, release 2021/05/04
11
- * Initial push, code freeying !
12
-
data/LICENSE DELETED
@@ -1,10 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2021 szorfein
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
-
7
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
-
9
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10
-
data/Rakefile DELETED
@@ -1,21 +0,0 @@
1
- # https://github.com/seattlerb/minitest#running-your-tests-
2
- require "rake/testtask"
3
- require File.dirname(__FILE__) + "/lib/freydis/version"
4
-
5
- Rake::TestTask.new(:test) do |t|
6
- t.libs << "test"
7
- t.libs << "lib"
8
- t.test_files = FileList["test/test_*.rb"]
9
- end
10
-
11
- # Usage: rake gem:build
12
- namespace :gem do
13
- desc "build the gem"
14
- task :build do
15
- Dir["freydis*.gem"].each {|f| File.unlink(f) }
16
- system("gem build freydis.gemspec")
17
- system("gem install freydis-#{Freydis::VERSION}.gem")
18
- end
19
- end
20
-
21
- task :default => :test
data/freydis.gemspec DELETED
@@ -1,33 +0,0 @@
1
- require File.dirname(__FILE__) + "/lib/freydis/version"
2
-
3
- # https://guides.rubygems.org/specification-reference/
4
- Gem::Specification.new do |s|
5
- s.files = `git ls-files`.split(" ")
6
- s.files.reject! { |fn| fn.include? "certs" }
7
- s.name = "freydis"
8
- s.summary = "Backup and Restore data from encrypted device."
9
- s.version = Freydis::VERSION
10
- s.description = <<-EOF
11
- Freydis is a CLI tool to encrypt a disk device, backup and restore easyly. Freydis use `cryptsetup` and `rsync` mainly.
12
- EOF
13
- s.email = "szorfein@protonmail.com"
14
- s.homepage = "https://github.com/szorfein/freydis"
15
- s.license = "MIT"
16
- s.metadata = {
17
- "bug_tracker_uri" => "https://github.com/szorfein/freydis/issues",
18
- "changelog_uri" => "https://github.com/szorfein/freydis/blob/master/CHANGELOG.md",
19
- "source_code_uri" => "https://github.com/szorfein/freydis",
20
- "wiki_uri" => "https://github.com/szorfein/freydis/wiki",
21
- "funding_uri" => "https://patreon.com/szorfein",
22
- }
23
- s.author = "szorfein"
24
- s.bindir = "bin"
25
- s.cert_chain = ["certs/szorfein.pem"]
26
- s.executables << "freydis"
27
- s.extra_rdoc_files = ['README.md']
28
- s.required_ruby_version = ">=2.6"
29
- s.requirements << 'cryptsetup, v2.3'
30
- s.requirements << 'rsync, v3.2'
31
- s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $@ =~ /gem\z/
32
- end
33
-