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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +10 -0
- data/README.md +1 -1
- data/lib/freydis/config.rb +13 -19
- data/lib/freydis/cryptsetup.rb +2 -2
- data/lib/freydis/disk.rb +0 -0
- data/lib/freydis/disk_luks.rb +3 -3
- data/lib/freydis/error.rb +0 -0
- data/lib/freydis/guard.rb +0 -0
- data/lib/freydis/main.rb +28 -0
- data/lib/freydis/options.rb +33 -19
- data/lib/freydis/rsync.rb +37 -22
- data/lib/freydis/secrets/archive.rb +12 -2
- data/lib/freydis/secrets/gpg.rb +1 -1
- data/lib/freydis/secrets.rb +0 -0
- data/lib/freydis/version.rb +1 -1
- data/lib/freydis.rb +21 -16
- data/lib/mods/exec.rb +4 -2
- data.tar.gz.sig +0 -0
- metadata +25 -24
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e071855bc8658bc5c785f31c78782e5551f21c007527d5198110c6040f1c8ca
|
4
|
+
data.tar.gz: b3b106797d2bddfafb5e9aeabd4b353e4f88d2d7fcd8ad82867fb103f56ea50a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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:
|
data/lib/freydis/config.rb
CHANGED
@@ -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 =
|
16
|
-
|
17
|
-
|
18
|
-
|
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
|
-
|
26
|
-
|
27
|
-
|
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
|
data/lib/freydis/cryptsetup.rb
CHANGED
@@ -9,9 +9,9 @@ module Freydis
|
|
9
9
|
include Msg
|
10
10
|
|
11
11
|
def initialize
|
12
|
-
Guard.disk_id(
|
12
|
+
Guard.disk_id(OPTIONS[:disk])
|
13
13
|
|
14
|
-
@disk = Disk.new(
|
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
|
data/lib/freydis/disk_luks.rb
CHANGED
@@ -13,7 +13,7 @@ module Freydis
|
|
13
13
|
cryptsetup.open
|
14
14
|
cryptsetup.format
|
15
15
|
cryptsetup.close
|
16
|
-
success "Disk #{
|
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 #{
|
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 #{
|
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
|
data/lib/freydis/main.rb
ADDED
@@ -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
|
data/lib/freydis/options.rb
CHANGED
@@ -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]$/,
|
19
|
-
|
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
|
-
|
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,
|
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,
|
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
|
-
|
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
|
41
|
-
|
53
|
+
if OPTIONS[:backup_paths].nil?
|
54
|
+
error 'Nothing in paths yet...'
|
42
55
|
else
|
43
|
-
|
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
|
-
|
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
|
-
|
68
|
+
ACTIONS[:open] = true
|
55
69
|
end
|
56
70
|
|
57
71
|
opts.on('-c', '--close', 'Umount and close encrypted disk.') do
|
58
|
-
|
72
|
+
ACTIONS[:close] = true
|
59
73
|
end
|
60
74
|
|
61
75
|
opts.on('-b', '--backup', 'Perform a backup.') do
|
62
|
-
|
76
|
+
ACTIONS[:backup] = true
|
63
77
|
end
|
64
78
|
|
65
79
|
opts.on('-r', '--restore', 'Restore saved datas on your system.') do
|
66
|
-
|
80
|
+
ACTIONS[:restore] = true
|
67
81
|
end
|
68
82
|
|
69
83
|
opts.on('--secrets-backup', 'Backup only secrets, including GPG keys.') do |s|
|
70
|
-
|
84
|
+
ACTIONS[:secrets_backup] = true
|
71
85
|
end
|
72
86
|
|
73
87
|
opts.on('--secrets-restore', 'Restore secrets.') do |s|
|
74
|
-
|
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
|
-
|
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
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
40
|
+
#@opts = '-aAXHvR'
|
41
|
+
@opts = '-aAXHv --relative'
|
42
|
+
#@opts = '-aAXHvRx'
|
29
43
|
end
|
30
44
|
|
31
45
|
def backup
|
32
|
-
|
46
|
+
DiskLuks.open
|
33
47
|
mkdir @workdir
|
34
48
|
exil = @exclude_paths * ','
|
35
|
-
save =
|
49
|
+
save = OPTIONS[:backup_paths] * ' '
|
36
50
|
@opts += ' --delete'
|
37
51
|
x "rsync #{@opts} --exclude={#{exil}} #{save} #{@workdir}"
|
38
|
-
|
52
|
+
puts "Saved path #{save}"
|
53
|
+
DiskLuks.close
|
39
54
|
end
|
40
55
|
|
41
56
|
def restore
|
42
|
-
|
57
|
+
DiskLuks.open
|
43
58
|
x "rsync #{@opts} #{@workdir} /"
|
44
|
-
|
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}/#{
|
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 =
|
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)
|
data/lib/freydis/secrets/gpg.rb
CHANGED
@@ -9,7 +9,7 @@ module Freydis
|
|
9
9
|
attr_reader :seckey_path, :pubkey_path
|
10
10
|
|
11
11
|
def initialize
|
12
|
-
@recipient = Guard.gpg(
|
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
|
data/lib/freydis/secrets.rb
CHANGED
File without changes
|
data/lib/freydis/version.rb
CHANGED
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
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
@argv = args[:argv]
|
21
|
-
end
|
16
|
+
OPTIONS = {
|
17
|
+
disk: '',
|
18
|
+
gpg_recipient: '',
|
19
|
+
backup_paths: []
|
20
|
+
}
|
22
21
|
|
23
|
-
|
24
|
-
|
25
|
-
|
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
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
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
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.
|
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
|
-
|
15
|
+
FgNjb20wHhcNMjMxMDIzMTcyMTA4WhcNMjQxMDIyMTcyMTA4WjBEMREwDwYDVQQD
|
16
16
|
DAhzem9yZmVpbjEaMBgGCgmSJomT8ixkARkWCnByb3Rvbm1haWwxEzARBgoJkiaJ
|
17
|
-
k/
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
AaOBgTB/
|
27
|
-
|
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
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
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:
|
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.
|
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
|