webtranslateit-safe 0.4.2 → 0.4.4
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
- data/CHANGELOG +22 -9
- data/bin/webtranslateit-safe +13 -13
- data/lib/webtranslateit/safe/archive.rb +9 -4
- data/lib/webtranslateit/safe/backup.rb +9 -2
- data/lib/webtranslateit/safe/cloudfiles.rb +21 -15
- data/lib/webtranslateit/safe/config/builder.rb +17 -8
- data/lib/webtranslateit/safe/config/node.rb +17 -10
- data/lib/webtranslateit/safe/ftp.rb +25 -25
- data/lib/webtranslateit/safe/gpg.rb +8 -2
- data/lib/webtranslateit/safe/gzip.rb +5 -1
- data/lib/webtranslateit/safe/local.rb +15 -11
- data/lib/webtranslateit/safe/mongodump.rb +12 -6
- data/lib/webtranslateit/safe/mysqldump.rb +9 -5
- data/lib/webtranslateit/safe/pgdump.rb +9 -9
- data/lib/webtranslateit/safe/pipe.rb +6 -0
- data/lib/webtranslateit/safe/s3.rb +28 -22
- data/lib/webtranslateit/safe/sftp.rb +42 -25
- data/lib/webtranslateit/safe/sink.rb +7 -2
- data/lib/webtranslateit/safe/source.rb +13 -9
- data/lib/webtranslateit/safe/stream.rb +14 -6
- data/lib/webtranslateit/safe/svndump.rb +5 -1
- data/lib/webtranslateit/safe/tmp_file.rb +16 -11
- data/lib/webtranslateit/safe.rb +12 -13
- metadata +3 -36
- data/.autotest +0 -3
- data/.document +0 -5
- data/.github/dependabot.yml +0 -26
- data/.github/release-drafter.yml +0 -36
- data/.github/workflows/ci.yml +0 -51
- data/.github/workflows/release-drafter.yml +0 -29
- data/.gitignore +0 -18
- data/.rspec +0 -3
- data/.rubocop.yml +0 -8
- data/.rubocop_todo.yml +0 -965
- data/Gemfile +0 -11
- data/Gemfile.lock +0 -89
- data/LICENSE.txt +0 -22
- data/Rakefile +0 -8
- data/TODO +0 -31
- data/lib/extensions/mktmpdir.rb +0 -45
- data/lib/webtranslateit/safe/version.rb +0 -5
- data/spec/integration/archive_integration_spec.rb +0 -89
- data/spec/integration/cleanup_spec.rb +0 -62
- data/spec/spec_helper.rb +0 -7
- data/spec/webtranslateit/safe/archive_spec.rb +0 -67
- data/spec/webtranslateit/safe/cloudfiles_spec.rb +0 -175
- data/spec/webtranslateit/safe/config_spec.rb +0 -307
- data/spec/webtranslateit/safe/gpg_spec.rb +0 -148
- data/spec/webtranslateit/safe/gzip_spec.rb +0 -64
- data/spec/webtranslateit/safe/local_spec.rb +0 -109
- data/spec/webtranslateit/safe/mongodump_spec.rb +0 -54
- data/spec/webtranslateit/safe/mysqldump_spec.rb +0 -83
- data/spec/webtranslateit/safe/pgdump_spec.rb +0 -45
- data/spec/webtranslateit/safe/s3_spec.rb +0 -168
- data/spec/webtranslateit/safe/svndump_spec.rb +0 -39
- data/templates/script.rb +0 -183
- data/webtranslateit-safe.gemspec +0 -31
@@ -1,17 +1,15 @@
|
|
1
1
|
module WebTranslateIt
|
2
|
+
|
2
3
|
module Safe
|
4
|
+
|
3
5
|
class Pgdump < Source
|
4
6
|
|
5
7
|
def command
|
6
|
-
|
7
|
-
ENV['PGPASSWORD'] = config['password']
|
8
|
-
else
|
9
|
-
ENV['PGPASSWORD'] = nil
|
10
|
-
end
|
8
|
+
ENV['PGPASSWORD'] = (config['password'] || nil)
|
11
9
|
"pg_dump #{postgres_options} #{postgres_username} #{postgres_host} #{postgres_port} #{@id}"
|
12
10
|
end
|
13
11
|
|
14
|
-
def extension
|
12
|
+
def extension = '.sql'
|
15
13
|
|
16
14
|
protected
|
17
15
|
|
@@ -20,17 +18,19 @@ module WebTranslateIt
|
|
20
18
|
end
|
21
19
|
|
22
20
|
def postgres_host
|
23
|
-
config['host'] && "--host='#{config[
|
21
|
+
config['host'] && "--host='#{config['host']}'"
|
24
22
|
end
|
25
23
|
|
26
24
|
def postgres_port
|
27
|
-
config['port'] && "--port='#{config[
|
25
|
+
config['port'] && "--port='#{config['port']}'"
|
28
26
|
end
|
29
27
|
|
30
28
|
def postgres_username
|
31
|
-
config['user'] && "--username='#{config[
|
29
|
+
config['user'] && "--username='#{config['user']}'"
|
32
30
|
end
|
33
31
|
|
34
32
|
end
|
33
|
+
|
35
34
|
end
|
35
|
+
|
36
36
|
end
|
@@ -1,6 +1,9 @@
|
|
1
1
|
module WebTranslateIt
|
2
|
+
|
2
3
|
module Safe
|
4
|
+
|
3
5
|
class Pipe < Stream
|
6
|
+
|
4
7
|
# process adds required commands to the current
|
5
8
|
# shell command string
|
6
9
|
# :active?, :pipe, :extension and :post_process are
|
@@ -12,6 +15,9 @@ module WebTranslateIt
|
|
12
15
|
@backup.extension << extension
|
13
16
|
post_process
|
14
17
|
end
|
18
|
+
|
15
19
|
end
|
20
|
+
|
16
21
|
end
|
22
|
+
|
17
23
|
end
|
@@ -1,7 +1,10 @@
|
|
1
1
|
module WebTranslateIt
|
2
|
+
|
2
3
|
module Safe
|
4
|
+
|
3
5
|
class S3 < Sink
|
4
|
-
|
6
|
+
|
7
|
+
MAX_S3_FILE_SIZE = 5_368_709_120
|
5
8
|
|
6
9
|
def active?
|
7
10
|
bucket && key && secret
|
@@ -15,26 +18,26 @@ module WebTranslateIt
|
|
15
18
|
|
16
19
|
def save
|
17
20
|
# FIXME: user friendly error here :)
|
18
|
-
raise
|
21
|
+
raise 'pipe-streaming not supported for S3.' unless @backup.path
|
19
22
|
|
20
23
|
# needed in cleanup even on dry run
|
21
|
-
AWS::S3::Base.establish_connection!(:
|
24
|
+
AWS::S3::Base.establish_connection!(access_key_id: key, secret_access_key: secret, use_ssl: true) unless local_only?
|
22
25
|
|
23
26
|
puts "Uploading #{bucket}:#{full_path}" if verbose? || dry_run?
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
27
|
+
return if dry_run? || local_only?
|
28
|
+
|
29
|
+
if File.stat(@backup.path).size > MAX_S3_FILE_SIZE
|
30
|
+
warn "ERROR: File size exceeds maximum allowed for upload to S3 (#{MAX_S3_FILE_SIZE}): #{@backup.path}"
|
31
|
+
return
|
32
|
+
end
|
33
|
+
benchmark = Benchmark.realtime do
|
34
|
+
AWS::S3::Bucket.create(bucket) unless bucket_exists?(bucket)
|
35
|
+
File.open(@backup.path) do |file|
|
36
|
+
AWS::S3::S3Object.store(full_path, file, bucket)
|
34
37
|
end
|
35
|
-
puts '...done' if verbose?
|
36
|
-
puts('Upload took ' + sprintf('%.2f', benchmark) + ' second(s).') if verbose?
|
37
38
|
end
|
39
|
+
puts '...done' if verbose?
|
40
|
+
puts("Upload took #{format('%.2f', benchmark)} second(s).") if verbose?
|
38
41
|
end
|
39
42
|
|
40
43
|
def cleanup
|
@@ -43,16 +46,16 @@ module WebTranslateIt
|
|
43
46
|
return unless keep = config[:keep, :s3]
|
44
47
|
|
45
48
|
puts "listing files: #{bucket}:#{base}*" if verbose?
|
46
|
-
files = AWS::S3::Bucket.objects(bucket, :
|
47
|
-
puts files.collect
|
49
|
+
files = AWS::S3::Bucket.objects(bucket, prefix: base, max_keys: keep * 2)
|
50
|
+
puts files.collect(&:key) if verbose?
|
48
51
|
|
49
|
-
files = files
|
50
|
-
|
51
|
-
|
52
|
+
files = files
|
53
|
+
.collect(&:key)
|
54
|
+
.sort
|
52
55
|
|
53
56
|
cleanup_with_limit(files, keep) do |f|
|
54
57
|
puts "removing s3 file #{bucket}:#{f}" if dry_run? || verbose?
|
55
|
-
AWS::S3::Bucket.objects(bucket, :
|
58
|
+
AWS::S3::Bucket.objects(bucket, prefix: f)[0].delete unless dry_run? || local_only?
|
56
59
|
end
|
57
60
|
end
|
58
61
|
|
@@ -69,12 +72,15 @@ module WebTranslateIt
|
|
69
72
|
end
|
70
73
|
|
71
74
|
private
|
72
|
-
|
75
|
+
|
73
76
|
def bucket_exists?(bucket)
|
74
77
|
true if AWS::S3::Bucket.find(bucket)
|
75
78
|
rescue AWS::S3::NoSuchBucket
|
76
79
|
false
|
77
80
|
end
|
81
|
+
|
78
82
|
end
|
83
|
+
|
79
84
|
end
|
85
|
+
|
80
86
|
end
|
@@ -1,7 +1,11 @@
|
|
1
1
|
module WebTranslateIt
|
2
|
+
|
2
3
|
module Safe
|
4
|
+
|
3
5
|
class Sftp < Sink
|
4
6
|
|
7
|
+
MAX_RETRIES = 5
|
8
|
+
|
5
9
|
protected
|
6
10
|
|
7
11
|
def active?
|
@@ -12,33 +16,46 @@ module WebTranslateIt
|
|
12
16
|
@path ||= expand(config[:sftp, :path] || config[:local, :path] || ':kind/:id')
|
13
17
|
end
|
14
18
|
|
15
|
-
def save
|
16
|
-
raise
|
19
|
+
def save # rubocop:todo Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
20
|
+
raise 'pipe-streaming not supported for SFTP.' unless @backup.path
|
17
21
|
|
18
22
|
puts "Uploading #{host}:#{full_path} via SFTP" if verbose? || dry_run?
|
19
23
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
24
|
+
return if dry_run? || local_only?
|
25
|
+
|
26
|
+
retries = 0
|
27
|
+
opts = {}
|
28
|
+
opts[:password] = password if password
|
29
|
+
opts[:port] = port if port
|
30
|
+
Net::SFTP.start(host, user, opts) do |sftp|
|
31
|
+
puts "Sending #{@backup.path} to #{full_path}" if verbose?
|
32
|
+
begin
|
33
|
+
sftp.upload! @backup.path, full_path
|
34
|
+
rescue IO::TimeoutError
|
35
|
+
puts 'Upload timed out, retrying'
|
36
|
+
retries += 1
|
37
|
+
if retries >= MAX_RETRIES
|
38
|
+
puts "Tried #{retries} times. Giving up."
|
39
|
+
else
|
40
|
+
retry unless retries >= MAX_RETRIES
|
41
|
+
end
|
42
|
+
rescue Net::SFTP::StatusException
|
43
|
+
puts "Ensuring remote path (#{path}) exists" if verbose?
|
44
|
+
# mkdir -p
|
45
|
+
folders = path.split('/')
|
46
|
+
folders.each_index do |i|
|
47
|
+
folder = folders[0..i].join('/')
|
48
|
+
puts "Creating #{folder} on remote" if verbose?
|
49
|
+
begin
|
50
|
+
sftp.mkdir!(folder)
|
51
|
+
rescue StandardError
|
52
|
+
Net::SFTP::StatusException
|
36
53
|
end
|
37
|
-
retry
|
38
54
|
end
|
55
|
+
retry
|
39
56
|
end
|
40
|
-
puts '...done' if verbose?
|
41
57
|
end
|
58
|
+
puts '...done' if verbose?
|
42
59
|
end
|
43
60
|
|
44
61
|
def cleanup
|
@@ -53,11 +70,9 @@ module WebTranslateIt
|
|
53
70
|
Net::SFTP.start(host, user, opts) do |sftp|
|
54
71
|
files = sftp.dir.glob(path, File.basename("#{base}*"))
|
55
72
|
|
56
|
-
puts files.collect
|
73
|
+
puts files.collect(&:name) if verbose?
|
57
74
|
|
58
|
-
files = files.
|
59
|
-
collect {|x| x.name }.
|
60
|
-
sort
|
75
|
+
files = files.collect(&:name).sort
|
61
76
|
|
62
77
|
cleanup_with_limit(files, keep) do |f|
|
63
78
|
file = File.join(path, f)
|
@@ -84,5 +99,7 @@ module WebTranslateIt
|
|
84
99
|
end
|
85
100
|
|
86
101
|
end
|
102
|
+
|
87
103
|
end
|
88
|
-
|
104
|
+
|
105
|
+
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module WebTranslateIt
|
2
|
+
|
2
3
|
module Safe
|
4
|
+
|
3
5
|
class Sink < Stream
|
4
6
|
|
5
7
|
def process
|
@@ -15,7 +17,7 @@ module WebTranslateIt
|
|
15
17
|
# base is used in 'cleanup' to find all files that begin with base. the '.'
|
16
18
|
# at the end is essential to distinguish b/w foo.* and foobar.* archives for example
|
17
19
|
def base
|
18
|
-
@base ||= File.join(path, File.basename(@backup.filename).split('.').first
|
20
|
+
@base ||= File.join(path, "#{File.basename(@backup.filename).split('.').first}.")
|
19
21
|
end
|
20
22
|
|
21
23
|
def full_path
|
@@ -30,6 +32,9 @@ module WebTranslateIt
|
|
30
32
|
# TODO: validate here
|
31
33
|
to_remove.each(&block)
|
32
34
|
end
|
35
|
+
|
33
36
|
end
|
37
|
+
|
34
38
|
end
|
35
|
-
|
39
|
+
|
40
|
+
end
|
@@ -1,10 +1,14 @@
|
|
1
1
|
module WebTranslateIt
|
2
|
+
|
2
3
|
module Safe
|
4
|
+
|
3
5
|
class Source < Stream
|
4
6
|
|
5
7
|
attr_accessor :id
|
8
|
+
|
6
9
|
def initialize(id, config)
|
7
|
-
@id
|
10
|
+
@id = id.to_s
|
11
|
+
@config = config
|
8
12
|
end
|
9
13
|
|
10
14
|
def timestamp
|
@@ -21,12 +25,13 @@ module WebTranslateIt
|
|
21
25
|
|
22
26
|
def backup
|
23
27
|
return @backup if @backup
|
28
|
+
|
24
29
|
@backup = Backup.new(
|
25
|
-
:
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
29
|
-
:
|
30
|
+
id: @id,
|
31
|
+
kind: kind,
|
32
|
+
extension: extension,
|
33
|
+
command: command,
|
34
|
+
timestamp: timestamp
|
30
35
|
)
|
31
36
|
# can't do this in the initializer hash above since
|
32
37
|
# filename() calls expand() which requires @backup
|
@@ -35,13 +40,12 @@ module WebTranslateIt
|
|
35
40
|
@backup
|
36
41
|
end
|
37
42
|
|
38
|
-
protected
|
39
|
-
|
40
43
|
def self.human_name
|
41
44
|
name.split('::').last.downcase
|
42
45
|
end
|
43
46
|
|
44
47
|
end
|
48
|
+
|
45
49
|
end
|
46
|
-
end
|
47
50
|
|
51
|
+
end
|
@@ -1,17 +1,22 @@
|
|
1
1
|
module WebTranslateIt
|
2
|
+
|
2
3
|
module Safe
|
4
|
+
|
3
5
|
class Stream
|
4
6
|
|
5
7
|
attr_accessor :config, :backup
|
8
|
+
|
6
9
|
def initialize(config, backup)
|
7
|
-
@config
|
10
|
+
@config = config
|
11
|
+
@backup = backup
|
8
12
|
end
|
13
|
+
|
9
14
|
# FIXME: move to Backup
|
10
15
|
def expand(path)
|
11
|
-
path
|
12
|
-
|
13
|
-
|
14
|
-
|
16
|
+
path
|
17
|
+
.gsub(/:kind\b/, @backup.kind.to_s)
|
18
|
+
.gsub(/:id\b/, @backup.id.to_s)
|
19
|
+
.gsub(/:timestamp\b/, @backup.timestamp)
|
15
20
|
end
|
16
21
|
|
17
22
|
private
|
@@ -27,6 +32,9 @@ module WebTranslateIt
|
|
27
32
|
def dry_run?
|
28
33
|
config[:dry_run]
|
29
34
|
end
|
35
|
+
|
30
36
|
end
|
37
|
+
|
31
38
|
end
|
32
|
-
|
39
|
+
|
40
|
+
end
|
@@ -1,7 +1,10 @@
|
|
1
1
|
require 'tmpdir'
|
2
2
|
module WebTranslateIt
|
3
|
+
|
3
4
|
module Safe
|
5
|
+
|
4
6
|
module TmpFile
|
7
|
+
|
5
8
|
@keep_files = []
|
6
9
|
|
7
10
|
def self.tmproot
|
@@ -12,22 +15,21 @@ module WebTranslateIt
|
|
12
15
|
begin
|
13
16
|
FileUtils.remove_entry_secure tmproot
|
14
17
|
rescue ArgumentError => e
|
15
|
-
|
16
|
-
|
18
|
+
raise unless e.message.include?('parent directory is world writable')
|
19
|
+
|
20
|
+
puts <<~ERR
|
17
21
|
|
18
22
|
|
19
|
-
********************************************************************************
|
20
|
-
It looks like you have wrong permissions on your TEMP directory. The usual
|
21
|
-
case is when you have world writable TEMP directory withOUT the sticky bit.
|
23
|
+
********************************************************************************
|
24
|
+
It looks like you have wrong permissions on your TEMP directory. The usual
|
25
|
+
case is when you have world writable TEMP directory withOUT the sticky bit.
|
22
26
|
|
23
|
-
Try "chmod +t" on it.
|
27
|
+
Try "chmod +t" on it.
|
24
28
|
|
25
|
-
********************************************************************************
|
29
|
+
********************************************************************************
|
26
30
|
|
27
|
-
ERR
|
28
|
-
|
29
|
-
raise
|
30
|
-
end
|
31
|
+
ERR
|
32
|
+
raise
|
31
33
|
end
|
32
34
|
@tmproot = nil
|
33
35
|
end
|
@@ -43,6 +45,9 @@ ERR
|
|
43
45
|
@keep_files << file # so that it will not get gcollected and removed from filesystem until the end
|
44
46
|
file.path
|
45
47
|
end
|
48
|
+
|
46
49
|
end
|
50
|
+
|
47
51
|
end
|
52
|
+
|
48
53
|
end
|
data/lib/webtranslateit/safe.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'webtranslateit/safe/version'
|
2
|
-
|
3
1
|
require 'aws/s3'
|
4
2
|
require 'cloudfiles'
|
5
3
|
require 'net/sftp'
|
@@ -8,7 +6,6 @@ require 'fileutils'
|
|
8
6
|
require 'benchmark'
|
9
7
|
|
10
8
|
require 'tempfile'
|
11
|
-
require 'extensions/mktmpdir'
|
12
9
|
|
13
10
|
require 'webtranslateit/safe/tmp_file'
|
14
11
|
|
@@ -38,7 +35,9 @@ require 'webtranslateit/safe/sftp'
|
|
38
35
|
require 'webtranslateit/safe/ftp'
|
39
36
|
|
40
37
|
module WebTranslateIt
|
38
|
+
|
41
39
|
module Safe
|
40
|
+
|
42
41
|
ROOT = File.join(File.dirname(__FILE__), '..', '..')
|
43
42
|
|
44
43
|
def safe(&block)
|
@@ -46,17 +45,15 @@ module WebTranslateIt
|
|
46
45
|
end
|
47
46
|
|
48
47
|
def process(config)
|
48
|
+
[[Mysqldump, %i[mysqldump databases]],
|
49
|
+
[Pgdump, %i[pgdump databases]],
|
50
|
+
[Mongodump, %i[mongodump databases]],
|
51
|
+
[Archive, %i[tar archives]],
|
52
|
+
[Svndump, %i[svndump repos]]].each do |klass, path|
|
53
|
+
next unless collection = config[*path]
|
49
54
|
|
50
|
-
|
51
|
-
|
52
|
-
[Mongodump, [:mongodump, :databases]],
|
53
|
-
[Archive, [:tar, :archives]],
|
54
|
-
[Svndump, [:svndump, :repos]]
|
55
|
-
].each do |klass, path|
|
56
|
-
if collection = config[*path]
|
57
|
-
collection.each do |name, c|
|
58
|
-
klass.new(name, c).backup.run(c, :gpg, :gzip, :local, :s3, :cloudfiles, :sftp, :ftp)
|
59
|
-
end
|
55
|
+
collection.each do |name, c|
|
56
|
+
klass.new(name, c).backup.run(c, :gpg, :gzip, :local, :s3, :cloudfiles, :sftp, :ftp)
|
60
57
|
end
|
61
58
|
end
|
62
59
|
|
@@ -64,5 +61,7 @@ module WebTranslateIt
|
|
64
61
|
end
|
65
62
|
module_function :safe
|
66
63
|
module_function :process
|
64
|
+
|
67
65
|
end
|
66
|
+
|
68
67
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webtranslateit-safe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Edouard Briere
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-06-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aws-s3
|
@@ -64,25 +64,9 @@ executables:
|
|
64
64
|
extensions: []
|
65
65
|
extra_rdoc_files: []
|
66
66
|
files:
|
67
|
-
- ".autotest"
|
68
|
-
- ".document"
|
69
|
-
- ".github/dependabot.yml"
|
70
|
-
- ".github/release-drafter.yml"
|
71
|
-
- ".github/workflows/ci.yml"
|
72
|
-
- ".github/workflows/release-drafter.yml"
|
73
|
-
- ".gitignore"
|
74
|
-
- ".rspec"
|
75
|
-
- ".rubocop.yml"
|
76
|
-
- ".rubocop_todo.yml"
|
77
67
|
- CHANGELOG
|
78
|
-
- Gemfile
|
79
|
-
- Gemfile.lock
|
80
|
-
- LICENSE.txt
|
81
68
|
- README.markdown
|
82
|
-
- Rakefile
|
83
|
-
- TODO
|
84
69
|
- bin/webtranslateit-safe
|
85
|
-
- lib/extensions/mktmpdir.rb
|
86
70
|
- lib/webtranslateit/safe.rb
|
87
71
|
- lib/webtranslateit/safe/archive.rb
|
88
72
|
- lib/webtranslateit/safe/backup.rb
|
@@ -104,23 +88,6 @@ files:
|
|
104
88
|
- lib/webtranslateit/safe/stream.rb
|
105
89
|
- lib/webtranslateit/safe/svndump.rb
|
106
90
|
- lib/webtranslateit/safe/tmp_file.rb
|
107
|
-
- lib/webtranslateit/safe/version.rb
|
108
|
-
- spec/integration/archive_integration_spec.rb
|
109
|
-
- spec/integration/cleanup_spec.rb
|
110
|
-
- spec/spec_helper.rb
|
111
|
-
- spec/webtranslateit/safe/archive_spec.rb
|
112
|
-
- spec/webtranslateit/safe/cloudfiles_spec.rb
|
113
|
-
- spec/webtranslateit/safe/config_spec.rb
|
114
|
-
- spec/webtranslateit/safe/gpg_spec.rb
|
115
|
-
- spec/webtranslateit/safe/gzip_spec.rb
|
116
|
-
- spec/webtranslateit/safe/local_spec.rb
|
117
|
-
- spec/webtranslateit/safe/mongodump_spec.rb
|
118
|
-
- spec/webtranslateit/safe/mysqldump_spec.rb
|
119
|
-
- spec/webtranslateit/safe/pgdump_spec.rb
|
120
|
-
- spec/webtranslateit/safe/s3_spec.rb
|
121
|
-
- spec/webtranslateit/safe/svndump_spec.rb
|
122
|
-
- templates/script.rb
|
123
|
-
- webtranslateit-safe.gemspec
|
124
91
|
homepage: http://github.com/webtranslateit/safe
|
125
92
|
licenses:
|
126
93
|
- MIT
|
@@ -141,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
108
|
- !ruby/object:Gem::Version
|
142
109
|
version: '0'
|
143
110
|
requirements: []
|
144
|
-
rubygems_version: 3.4.
|
111
|
+
rubygems_version: 3.4.14
|
145
112
|
signing_key:
|
146
113
|
specification_version: 4
|
147
114
|
summary: Backup filesystem and databases (MySQL and PostgreSQL) locally or to a remote
|
data/.autotest
DELETED
data/.document
DELETED
data/.github/dependabot.yml
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# Please see the documentation for all configuration options:
|
2
|
-
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
3
|
-
|
4
|
-
version: 2
|
5
|
-
updates:
|
6
|
-
- package-ecosystem: "bundler"
|
7
|
-
directory: "/"
|
8
|
-
schedule:
|
9
|
-
interval: "weekly"
|
10
|
-
day: "monday"
|
11
|
-
time: "04:00"
|
12
|
-
reviewers:
|
13
|
-
- edouard
|
14
|
-
assignees:
|
15
|
-
- edouard
|
16
|
-
|
17
|
-
- package-ecosystem: github-actions
|
18
|
-
directory: "/"
|
19
|
-
schedule:
|
20
|
-
interval: weekly
|
21
|
-
day: monday
|
22
|
-
time: "04:00"
|
23
|
-
reviewers:
|
24
|
-
- edouard
|
25
|
-
assignees:
|
26
|
-
- edouard
|
data/.github/release-drafter.yml
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
name-template: '$RESOLVED_VERSION 🌈'
|
2
|
-
tag-template: '$RESOLVED_VERSION'
|
3
|
-
categories:
|
4
|
-
- title: '🚀 Features'
|
5
|
-
labels:
|
6
|
-
- 'feature'
|
7
|
-
- 'enhancement'
|
8
|
-
- title: '🐛 Bug Fixes'
|
9
|
-
labels:
|
10
|
-
- 'bug'
|
11
|
-
- 'design'
|
12
|
-
- 'performance'
|
13
|
-
- title: '🧰 Maintenance'
|
14
|
-
labels:
|
15
|
-
- 'admin'
|
16
|
-
- 'refactoring'
|
17
|
-
- 'dependencies'
|
18
|
-
- 'github_actions'
|
19
|
-
- 'tests'
|
20
|
-
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
|
21
|
-
change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks.
|
22
|
-
version-resolver:
|
23
|
-
major:
|
24
|
-
labels:
|
25
|
-
- 'major'
|
26
|
-
minor:
|
27
|
-
labels:
|
28
|
-
- 'minor'
|
29
|
-
patch:
|
30
|
-
labels:
|
31
|
-
- 'patch'
|
32
|
-
default: patch
|
33
|
-
template: |
|
34
|
-
## Changes
|
35
|
-
|
36
|
-
$CHANGES
|