freydis 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8963ba3af539bf5e5893778cf4e19164cca071b4aa33f42c7bfed8b184016604
4
- data.tar.gz: 235dba3157fda782be2927b08094970065511aaa36f5b0898499cc1fd421f3fb
3
+ metadata.gz: 3e071855bc8658bc5c785f31c78782e5551f21c007527d5198110c6040f1c8ca
4
+ data.tar.gz: b3b106797d2bddfafb5e9aeabd4b353e4f88d2d7fcd8ad82867fb103f56ea50a
5
5
  SHA512:
6
- metadata.gz: 5ce910c91f09a88ca6e3fb9a47e5b64f5f76b0a5ac5d78c44baa79b81d29a60c2fe7566f631962792b7192a435ce537258469e5d3f84f1471816d10f0bad8902
7
- data.tar.gz: 8098c0c471bb5f6dbb9a71f5553244a496bfe7d29cd37ad848b95b4fd312c48ffe4c7c5c5f305d551db1a45feec5dec935a615dd1fc0a946126de9ddbbe48248
6
+ metadata.gz: 80a41013b5a8f8c5bbefea435e32d5f6fa52a4b2dafb3f712d67191b2a16e29d3ff869132ad86d67100fb43e4048ced45e4ec8d60cc8796076ee449b07f4594d
7
+ data.tar.gz: af96444a6d4c3047adf667cd98dddbfb19a80caf4e094d3dab869575b7b3a61ca51f2693bb166e0306d57498bbe1ea881239cfb4ac9c0c564de166122d260b8d
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 0.2.0, release 2023/10/23
2
+ * Define constant OPTIONS and ACTIONS
3
+ * Correct rsync options
4
+ * Can save gpg recipient in freydis.yaml
5
+ * Enhance output of freydis -L
6
+ * Move engine in Freydis::Main
7
+
8
+ ## 0.1.1, release 2022/10/8
9
+ * Restore archive with sudo if permission are insufficient.
10
+
1
11
  ## 0.1.0, release 2022/09/20
2
12
  * New dependencies for `Freydis::Secrets`: `bsdtar`, `shred` and `gnupg`.
3
13
  * Option store a new field `gpg_recipient`.
data/README.md CHANGED
@@ -43,7 +43,7 @@ The config file will be created at `~/.config/freydis/freydis.yaml`.
43
43
  #### 0x02 - First backup
44
44
  Freydis will use `rsync`, all paths must be separated by a comma:
45
45
 
46
- $ freydis --backup --paths-add "/home,/etc" --save
46
+ $ freydis --backup --paths-add /home,/etc --save
47
47
 
48
48
  #### 0x03 - Restore
49
49
  With `--disk` and `--paths-add` saved in the config file, you only need to write:
@@ -9,36 +9,30 @@ module Freydis
9
9
  class Config
10
10
  include Msg
11
11
 
12
- attr_accessor :gpg_recipient, :disk, :paths
13
-
14
12
  def initialize
15
- @cpath = "#{ENV['HOME']}/.config/freydis/freydis.yaml"
16
- @disk = nil
17
- @gpg_recipient = nil
18
- @paths = []
13
+ @cpath = ENV['XDG_CONFIG_HOME'] ?
14
+ "#{ENV['XDG_CONFIG_HOME']}/freydis/freydis.yaml" :
15
+ "#{ENV['HOME']}/.config/freydis/freydis.yaml"
16
+
17
+ end
18
+
19
+ def save
20
+ FileUtils.mkdir_p Pathname.new(@cpath).parent.to_s
21
+ File.write @cpath, YAML::dump(OPTIONS)
22
+ success "Saving options to #{@cpath}..."
19
23
  end
20
24
 
21
25
  def load
22
26
  if File.exist? @cpath
23
27
  info 'Loading config...'
24
28
  data_load = YAML.load_file @cpath
25
- @disk = data_load[:disk]
26
- @gpg_recipient = data_load[:gpg_recipient]
27
- @paths = data_load[:paths]
29
+ OPTIONS[:disk] = data_load[:disk]
30
+ OPTIONS[:gpg_recipient] = data_load[:gpg_recipient]
31
+ OPTIONS[:backup_paths] = data_load[:backup_paths]
28
32
  else
29
33
  info "Creating config file #{@cpath}..."
30
34
  save
31
35
  end
32
36
  end
33
-
34
- def save
35
- FileUtils.mkdir_p Pathname.new(@cpath).parent.to_s
36
- File.write @cpath, YAML::dump({
37
- disk: @disk,
38
- gpg_recipient: @gpg_recipient,
39
- paths: @paths.uniq
40
- })
41
- success "Saving options to #{@cpath}..."
42
- end
43
37
  end
44
38
  end
@@ -9,9 +9,9 @@ module Freydis
9
9
  include Msg
10
10
 
11
11
  def initialize
12
- Guard.disk_id(CONFIG.disk)
12
+ Guard.disk_id(OPTIONS[:disk])
13
13
 
14
- @disk = Disk.new(CONFIG.disk).search_sdx
14
+ @disk = Disk.new(OPTIONS[:disk]).search_sdx
15
15
  @mapper_name = 'freydis-encrypt'
16
16
  @mountpoint = '/mnt/freydis'
17
17
  end
data/lib/freydis/disk.rb CHANGED
File without changes
@@ -13,7 +13,7 @@ module Freydis
13
13
  cryptsetup.open
14
14
  cryptsetup.format
15
15
  cryptsetup.close
16
- success "Disk #{CONFIG.disk} fully encrypted."
16
+ success "Disk #{OPTIONS[:disk]} fully encrypted."
17
17
  end
18
18
 
19
19
  def open
@@ -21,13 +21,13 @@ module Freydis
21
21
  cryptsetup.close
22
22
  cryptsetup.open
23
23
  cryptsetup.mount
24
- success "Disk #{CONFIG.disk} opened."
24
+ success "Disk #{OPTIONS[:disk]} opened."
25
25
  end
26
26
 
27
27
  def close
28
28
  cryptsetup = Freydis::Cryptsetup.new
29
29
  cryptsetup.close
30
- success "Disk #{CONFIG.disk} closed."
30
+ success "Disk #{OPTIONS[:disk]} closed."
31
31
  end
32
32
  end
33
33
  end
data/lib/freydis/error.rb CHANGED
File without changes
data/lib/freydis/guard.rb CHANGED
File without changes
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+ # lib/main.rb
3
+
4
+ module Freydis
5
+ class Main
6
+ # Code here
7
+ def initialize(args)
8
+ Options.new(args[:argv])
9
+ end
10
+
11
+ def start
12
+ DiskLuks.encrypt if ACTIONS[:encrypt]
13
+ DiskLuks.open if ACTIONS[:open]
14
+ DiskLuks.close if ACTIONS[:close]
15
+ Rsync.new.backup if ACTIONS[:backup]
16
+ Rsync.new.restore if ACTIONS[:restore]
17
+ Secrets.backup if ACTIONS[:secrets_backup]
18
+ Secrets.restore if ACTIONS[:secrets_restore]
19
+ Config.new.save if ACTIONS[:config_save]
20
+ end
21
+
22
+ def bye
23
+ puts
24
+ puts "Bye !"
25
+ exit
26
+ end
27
+ end
28
+ end
@@ -1,9 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'optparse'
4
+ require 'mods/msg'
4
5
 
5
6
  module Freydis
6
7
  class Options
8
+ include Msg
9
+
7
10
  def initialize(argv)
8
11
  parse(argv)
9
12
  end
@@ -15,67 +18,78 @@ module Freydis
15
18
  opts.banner = 'Usage: freydis.rb [options]'
16
19
  opts.version = VERSION
17
20
 
18
- opts.on('--disk NAME', /^sd[a-z]$/, 'Use the disk NAME (e.g: sda, sdb).') do |disk|
19
- Freydis::CONFIG.disk = Guard.disk(disk)
21
+ opts.on('--disk NAME', /^sd[a-z]$/,
22
+ 'Use the disk NAME (e.g: sda, sdb).') do |disk|
23
+ OPTIONS[:disk] = Guard.disk(disk)
20
24
  end
21
25
 
22
26
  opts.on('--gpg-recipient NAME', String, 'Use gpg key NAME.') do |key|
23
- Freydis::CONFIG.gpg_recipient = Guard.gpg(key)
27
+ OPTIONS[:gpg_recipient] = Guard.gpg(key)
28
+ info "Using key #{OPTIONS[:gpg_recipient]}"
24
29
  end
25
30
 
26
- opts.on('-p PATHS', '--paths-add PATHS', Array, 'Add absolute PATHS to the backup list.') do |paths|
31
+ opts.on('-p PATHS', '--paths-add PATHS', Array,
32
+ 'Add absolute PATHS to the backup list.') do |paths|
27
33
  paths.each do |p|
28
34
  Freydis::Guard.path? p
29
- Freydis::CONFIG.paths << p
30
- end
31
35
 
36
+ info p
37
+ OPTIONS[:backup_paths] << p unless OPTIONS[:backup_paths].include? p
38
+ end
32
39
  end
33
40
 
34
- opts.on('-d PATH', '--path-del PATH', String, 'Remove absolute PATH from the backup list.') do |p|
41
+ opts.on('-d PATH', '--path-del PATH', String,
42
+ 'Remove absolute PATH from the backup list.') do |p|
35
43
  Freydis::Guard.path? p
36
- Freydis::CONFIG.paths.delete p if CONFIG.paths.include? p
44
+
45
+ if OPTIONS[:backup_paths].include? p
46
+ OPTIONS[:backup_paths].delete p
47
+ else
48
+ error "#{p} is no found in #{OPTIONS[:backup_paths]}"
49
+ end
37
50
  end
38
51
 
39
52
  opts.on('-L', '--paths-list', 'List all paths from your list.') do
40
- if Freydis::CONFIG.paths.nil?
41
- puts 'Nothing in paths yet...'
53
+ if OPTIONS[:backup_paths].nil?
54
+ error 'Nothing in paths yet...'
42
55
  else
43
- puts Freydis::CONFIG.paths
56
+ success "Listing paths to backup..."
57
+ OPTIONS[:backup_paths].each { |p| info p }
44
58
  end
45
59
  end
46
60
 
47
61
  # Engines options
48
62
 
49
63
  opts.on('-e', '--encrypt', 'Encrypt and format (ext4) your device.') do
50
- Freydis::DiskLuks.encrypt
64
+ ACTIONS[:encrypt] = true
51
65
  end
52
66
 
53
67
  opts.on('-o', '--open', 'Open and mount encrypted disk at /mnt/freydis.') do
54
- Freydis::DiskLuks.open
68
+ ACTIONS[:open] = true
55
69
  end
56
70
 
57
71
  opts.on('-c', '--close', 'Umount and close encrypted disk.') do
58
- Freydis::DiskLuks.close
72
+ ACTIONS[:close] = true
59
73
  end
60
74
 
61
75
  opts.on('-b', '--backup', 'Perform a backup.') do
62
- Freydis::Rsync.new.backup
76
+ ACTIONS[:backup] = true
63
77
  end
64
78
 
65
79
  opts.on('-r', '--restore', 'Restore saved datas on your system.') do
66
- Freydis::Rsync.new.restore
80
+ ACTIONS[:restore] = true
67
81
  end
68
82
 
69
83
  opts.on('--secrets-backup', 'Backup only secrets, including GPG keys.') do |s|
70
- Freydis::Secrets.backup
84
+ ACTIONS[:secrets_backup] = true
71
85
  end
72
86
 
73
87
  opts.on('--secrets-restore', 'Restore secrets.') do |s|
74
- Freydis::Secrets.restore
88
+ ACTIONS[:secrets_restore] = true
75
89
  end
76
90
 
77
91
  opts.on('-s', '--save', 'Save current arguments in the config file.') do
78
- Freydis::CONFIG.save
92
+ ACTIONS[:config_save] = true
79
93
  end
80
94
 
81
95
  begin
data/lib/freydis/rsync.rb CHANGED
@@ -7,41 +7,56 @@ module Freydis
7
7
  include Exec
8
8
 
9
9
  def initialize
10
- @workdir = '/mnt/freydis/backup/'
10
+ @workdir = '/mnt/freydis/backup'
11
11
  @exclude_paths = %w[
12
- /dev/*
13
- /proc/*
14
- /sys/*
15
- /tmp/*
16
- /run/*
17
- /mnt/*
18
- /media/*
19
- /var/lib/dhcpcd/*
20
- /home/*/.gvfs
21
- /home/*/.thumbnails/*
22
- /home/*/.cache/*
23
- /home/*/.local/share/*
24
- /home/*/.Xauthority
25
- /home/*/.xsession-errors
26
- /lost+found
12
+ "/dev/*"
13
+ "/proc/*"
14
+ "/sys/*"
15
+ "/tmp/*"
16
+ "/run/*"
17
+ "/mnt/*"
18
+ "/media/*"
19
+ "/var/lib/dhcpcd/*"
20
+ "*/.gvfs"
21
+ "*/.vim/*"
22
+ "*/.weechat/*"
23
+ "*/.thumbnails/*"
24
+ "*/.oh-my-zsh/*"
25
+ "*/.cache/*"
26
+ "*/.emacs.d/*"
27
+ "*/.local/share/*"
28
+ "*/.Xauthority"
29
+ "*/.xsession-errors"
30
+ "*/.quickemu/*"
31
+ "*/.config/BraveSoftware/*"
32
+ "*/.config/Min/*"
33
+ "*/.config/emacs"
34
+ "*/build/*"
35
+ "*/tmp/*"
36
+ "*/.npm"
37
+ "*/.history"
38
+ "*lost+found"
27
39
  ]
28
- @opts = '-aAXHvRx'
40
+ #@opts = '-aAXHvR'
41
+ @opts = '-aAXHv --relative'
42
+ #@opts = '-aAXHvRx'
29
43
  end
30
44
 
31
45
  def backup
32
- Freydis::DiskLuks.open
46
+ DiskLuks.open
33
47
  mkdir @workdir
34
48
  exil = @exclude_paths * ','
35
- save = CONFIG.paths * ' '
49
+ save = OPTIONS[:backup_paths] * ' '
36
50
  @opts += ' --delete'
37
51
  x "rsync #{@opts} --exclude={#{exil}} #{save} #{@workdir}"
38
- Freydis::DiskLuks.close
52
+ puts "Saved path #{save}"
53
+ DiskLuks.close
39
54
  end
40
55
 
41
56
  def restore
42
- Freydis::DiskLuks.open
57
+ DiskLuks.open
43
58
  x "rsync #{@opts} #{@workdir} /"
44
- Freydis::DiskLuks.close
59
+ DiskLuks.close
45
60
  end
46
61
  end
47
62
  end
@@ -12,7 +12,7 @@ module Freydis
12
12
 
13
13
  def initialize(gpg)
14
14
  @workdir = '/mnt/freydis/secrets'
15
- @filename = "#{@workdir}/#{CONFIG.gpg_recipient}_#{Date.today}.tar.gz"
15
+ @filename = "#{@workdir}/#{OPTIONS[:gpg_recipient]}_#{Date.today}.tar.gz"
16
16
  @restore_dir = '/tmp'
17
17
  @include_paths = %w[]
18
18
  @gpg = gpg
@@ -30,7 +30,8 @@ module Freydis
30
30
 
31
31
  # Restore the most recent archive in your $HOME
32
32
  def restore
33
- last_archive = Dir.glob("#{@workdir}/*").sort[0]
33
+ last_archive = find_last_archive
34
+ error 'No archive found.' unless last_archive
34
35
 
35
36
  mkdir @restore_dir
36
37
  info "Restoring #{last_archive}..."
@@ -48,6 +49,15 @@ module Freydis
48
49
  #{@gpg.pubkey_path}])
49
50
  end
50
51
 
52
+ def find_last_archive
53
+ if Process.uid == 0
54
+ Dir.glob("#{@workdir}/#{CONFIG.gpg_recipient}*").sort[0]
55
+ else
56
+ archive = `sudo ls #{@workdir}/ | grep #{CONFIG.gpg_recipient} | sort | head -1`.chomp
57
+ "#{@workdir}/#{archive}" if archive
58
+ end
59
+ end
60
+
51
61
  private
52
62
 
53
63
  def search_paths(paths)
@@ -9,7 +9,7 @@ module Freydis
9
9
  attr_reader :seckey_path, :pubkey_path
10
10
 
11
11
  def initialize
12
- @recipient = Guard.gpg(CONFIG.gpg_recipient)
12
+ @recipient = Guard.gpg(OPTIONS[:gpg_recipient])
13
13
  @seckey_path = "/tmp/#{@recipient}-secret.key"
14
14
  @pubkey_path = "/tmp/#{@recipient}-public.key"
15
15
  end
File without changes
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Freydis
4
- VERSION = '0.1.0'
4
+ VERSION = '0.2.0'
5
5
  end
6
6
 
data/lib/freydis.rb CHANGED
@@ -10,24 +10,29 @@ require_relative 'freydis/rsync'
10
10
  require_relative 'freydis/error'
11
11
  require_relative 'freydis/guard'
12
12
  require_relative 'freydis/secrets'
13
+ require_relative 'freydis/main'
13
14
 
14
15
  module Freydis
15
- CONFIG = Config.new
16
- CONFIG.load
17
-
18
- class Main
19
- def initialize(args)
20
- @argv = args[:argv]
21
- end
16
+ OPTIONS = {
17
+ disk: '',
18
+ gpg_recipient: '',
19
+ backup_paths: []
20
+ }
22
21
 
23
- def start
24
- Options.new(@argv)
25
- end
22
+ ACTIONS = {
23
+ encrypt: false,
24
+ open: false,
25
+ close: false,
26
+ backup: false,
27
+ restore: false,
28
+ secrets_backup: false,
29
+ secrets_restore: false,
30
+ config_save: true
31
+ }
26
32
 
27
- def bye
28
- puts
29
- puts "Bye !"
30
- exit
31
- end
32
- end
33
+ # Load options from YAML
34
+ Config.new.load
35
+
36
+ # If problem with the config load
37
+ OPTIONS[:backup_paths] = [] if OPTIONS[:backup_paths] == nil
33
38
  end
data/lib/mods/exec.rb CHANGED
@@ -3,8 +3,10 @@
3
3
  module Exec
4
4
  def x(command)
5
5
  sudo = Process.uid != 0 ? 'sudo' : ''
6
- unless system("#{sudo} #{command}")
7
- Msg.error "Execute: #{command}"
6
+ cmd = "#{sudo} #{command}"
7
+ unless system(cmd)
8
+ warn "[-] Execute: #{cmd}"
9
+ exit 1
8
10
  end
9
11
  end
10
12
 
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: freydis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - szorfein
@@ -12,31 +12,31 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEhTCCAu2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBEMREwDwYDVQQDDAhzem9y
14
14
  ZmVpbjEaMBgGCgmSJomT8ixkARkWCnByb3Rvbm1haWwxEzARBgoJkiaJk/IsZAEZ
15
- FgNjb20wHhcNMjIwOTA4MDYyNjE5WhcNMjMwOTA4MDYyNjE5WjBEMREwDwYDVQQD
15
+ FgNjb20wHhcNMjMxMDIzMTcyMTA4WhcNMjQxMDIyMTcyMTA4WjBEMREwDwYDVQQD
16
16
  DAhzem9yZmVpbjEaMBgGCgmSJomT8ixkARkWCnByb3Rvbm1haWwxEzARBgoJkiaJ
17
- k/IsZAEZFgNjb20wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDEJNhl
18
- Gd0JNHLXysR7GvbCKD+y1prQbmS333GpoFgPR2chEGv8Y7l0We2UFXCZ59CVOs1v
19
- KBVQhhNvxWAHWhfe/8stb1JFBxZpnCi7S0BGpqeblaGBXVlhBOzbZ6d1NrOwMfDS
20
- 6EzdX4WAOH55HnAz29T5KREUdbONVLU7HJNIIFVZvf6ethOv84pnkWbdWjV0RB3A
21
- ERYste5QHGx1YQOYGTuJMlu8113kqTbB8wpEw6X00aJwmXcJvnKXkhN5mxd06yss
22
- EE96lOk16raTWCh7DeYR3/ilVet3DpLlCvpFNtMIuko1HFa3HTW+57003VxD8Ozk
23
- VGQKn823D+ReujKh+jgxbl8Q+r652C9Wl1N+C5CSma4mDtNGKr0XmEOEQycpSx0z
24
- Z9J6/27wS8s6SJ0rLxueFQ6gb2oPEQb8jKJuNEuXWLmO3Idrwlv9Z7ymhnksjyqM
25
- fAw+NMGEOCITNphXmssazlLX+bnxcbpr7rbTHa1xBmmHoUVudAnxAG43PrMCAwEA
26
- AaOBgTB/MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRzxda94CPF
27
- Ll9UQ5l55l65RCZuEzAiBgNVHREEGzAZgRdzem9yZmVpbkBwcm90b25tYWlsLmNv
17
+ k/IsZAEZFgNjb20wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCqe1yx
18
+ EG2oM25jeHp08A8zkaDNmbI3MujjrRM/WPEYZX2dVwOxkIS20hQVuxcAsBBA4W/W
19
+ kuPbqRkvLboaGaxLrllkSEJw9HA/GesTdXLyCFYmNzSFqGh5BafNSkxoiDhTavxp
20
+ xvYzAkYR/3CzSOWSxJk73wIg+F7w/nWJPTt2tgJE9hgR8uuFY+EzPOlFZhkFTdCV
21
+ 88sBGuZPMjq7ASQVBE3UA+Y1xJeXE3/FhIhYvLnjevkkDLSLFmox0ZQf6nx6abuL
22
+ KTOGRA1bfLfkW5HMh5X5JwViliwG3RWhqAukJUgHTUk+oKtejlzSDqupwOenKZf0
23
+ xI2/BnS8zOsS6Te08iLxqZfI/lsG8wcPduekSetRI4VIOZ5QoRK54PiQjrOBhbnD
24
+ OQBB/XF1C80imZtRtdUqh6bK9WeWI4RYZ2/KwXL1AScEbXkBkkOECWoVrD18WgRm
25
+ siuX6RkNIelhtb0En7f3bizgPqlO0qPQV+wPi9TSBxdVG12C0OmjCQYMQD0CAwEA
26
+ AaOBgTB/MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBTlKnQ3qMUF
27
+ zydvZaKwdP+dnj2uajAiBgNVHREEGzAZgRdzem9yZmVpbkBwcm90b25tYWlsLmNv
28
28
  bTAiBgNVHRIEGzAZgRdzem9yZmVpbkBwcm90b25tYWlsLmNvbTANBgkqhkiG9w0B
29
- AQsFAAOCAYEAPhavFyzIP60Zw7y40zJhzQpMK2IWtdw9HrRJq313Ea4UT1Kgv7F9
30
- lCFtQzI5XMzooYiLMoPz7xBMXaUz+DDFOOcgGSinVrFbfPA4rOGEkBjnlwC39lBc
31
- AiyXFzCV7Wqn4VhtqQQyvmoNYL4Q666K+nL8/nsXZWsXtRQ119LeAvrI2A+xmYAb
32
- FPE5bD3Jx1JCoJdVN1DmE4YYdM8mVmb0XjCK9Tp1M01EDKDvAX7f3B+X6A5D7uBq
33
- 63X6Kx09VkntVOrifd3W4TwjDlyAMpB+50OIi3ErPnH2R4i09qnCiZmcVWATBVKw
34
- e2QSloIAUZJwEFkrRqWPNVi8sr+BcMeuKpXaOwpbkP+xq/W2EKlUQKhPXMXS4jvC
35
- MuTi+RjpSNKZxzBrOlK2eMIpiFrugF7nzKcM9EGnWRWUb899drCcD4VJhjPtgpn+
36
- aEJeKq4/BlIwMlXPe+W5C8zp2i8hgG1/OYbwbGE1p2iRi1NIK7G/HyRqQjOqJxzE
37
- LLknX69FN7/G
29
+ AQsFAAOCAYEAFjnBWWfaMeA8hP0Q76WmBCFckGN5I42X5RQkVYRRXIaeXIS1td/t
30
+ O1v1iQLo6ABfASMi6We7T16+ita68xwNOmSkMNHHXBr/fdGbHExxFSX7BXNRbwla
31
+ SS6Vy0bXKMDJbXcvkrmIolpYhEFm1218FCRCT6ogM1oWAJAfhfF9pMeRxrxjQYFn
32
+ ko8XgjIHxb83miOILgdq/lgJ4gfD7PsGfJtLCLiCKCcxIb4TtmKAzRwCDVpb6wqM
33
+ 5xJZffAmHI7v8lVer53sPzm3INPu5xFZyfZ/SXYXPKKwln0efH63K5vuXYwEN7NI
34
+ SBSRTN03Hb65t86m6/r084SrNnLntQjCSqApzFBt1QwJ5cmiVilODN4V7y2hZpyK
35
+ hSk3b2VOotDPiWIm1p/IPXQDfm5x67Z5fJQPAlBTsse4jKyVyW1lZLmERSBuRZ2O
36
+ urXgRIzALxd/xazPCnoLSXPzfJSI6Y77S1EBvhPd9RaSO8IyH9RhPDP9mnTvW2Kl
37
+ NAUnoL+txK5a
38
38
  -----END CERTIFICATE-----
39
- date: 2022-09-20 00:00:00.000000000 Z
39
+ date: 2023-10-23 00:00:00.000000000 Z
40
40
  dependencies: []
41
41
  description: 'Freydis is a CLI tool to encrypt a disk device, backup and restore easyly.
42
42
  Freydis use `cryptsetup` and `rsync` mainly.
@@ -60,6 +60,7 @@ files:
60
60
  - lib/freydis/disk_luks.rb
61
61
  - lib/freydis/error.rb
62
62
  - lib/freydis/guard.rb
63
+ - lib/freydis/main.rb
63
64
  - lib/freydis/options.rb
64
65
  - lib/freydis/rsync.rb
65
66
  - lib/freydis/secrets.rb
@@ -93,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
94
  requirements:
94
95
  - cryptsetup
95
96
  - rsync
96
- rubygems_version: 3.3.19
97
+ rubygems_version: 3.3.25
97
98
  signing_key:
98
99
  specification_version: 4
99
100
  summary: Backup and Restore data from encrypted device.
metadata.gz.sig CHANGED
Binary file