freydis 0.1.0 → 0.2.0

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: 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