simple_backup 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/simple_backup/source/abstract.rb +26 -22
- data/lib/simple_backup/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6bf4a9cc5d50117feeda791694e81ebcc8d6f7ed
|
4
|
+
data.tar.gz: fcfebcc9a956f6eac79aa694f63c0c06df522286
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c2a8673f38826bc67799a4a1a8056c2769a78040b540a84b56895ba53346a88c0f32690b4916fc5120e44459a4c9aa61d2927538569536dabc62ec2476d55ec
|
7
|
+
data.tar.gz: f889560ab87b72d0ee0935ca27e6b56e5d6584b7e97692470cdec6fb8dc7f13bbcd762c8003ac2fa830a1838c5bef2b780de809c7fb6a6edd1b66f967bd2d0ff
|
@@ -2,6 +2,7 @@ require 'fileutils'
|
|
2
2
|
require 'rubygems/package'
|
3
3
|
require 'securerandom'
|
4
4
|
require 'tmpdir'
|
5
|
+
require 'tempfile'
|
5
6
|
require 'zlib'
|
6
7
|
|
7
8
|
module SimpleBackup
|
@@ -47,11 +48,15 @@ module SimpleBackup
|
|
47
48
|
|
48
49
|
@@logger.scope_start :info, "Getting archive for: #{desc}"
|
49
50
|
|
50
|
-
|
51
|
+
@tmp_dir = ::File.join(get_tmp, "simple_backup-#{SimpleBackup::TIMESTAMP}-#{SecureRandom.uuid}")
|
52
|
+
FileUtils.mkdir_p @tmp_dir, mode: 0700
|
53
|
+
|
54
|
+
@@logger.debug "Created tmp directory #{@tmp_dir}"
|
55
|
+
|
51
56
|
data_exists = prepare_data
|
57
|
+
archive_data if data_exists
|
52
58
|
|
53
59
|
@@logger.warning "No data for: #{desc}" unless data_exists
|
54
|
-
archive_data if data_exists
|
55
60
|
|
56
61
|
FileUtils.rm_rf(@tmp_dir)
|
57
62
|
@@logger.debug "Removed tmp directory #{@tmp_dir}"
|
@@ -94,33 +99,27 @@ module SimpleBackup
|
|
94
99
|
filename = "#{type}-#{name}.#{SimpleBackup::TIMESTAMP}.tar.gz"
|
95
100
|
@backup_file = ::File.join(get_tmp, filename)
|
96
101
|
|
97
|
-
|
98
|
-
f.write targz.string
|
99
|
-
end
|
102
|
+
targz
|
100
103
|
|
101
104
|
@@logger.debug "Backup saved to temporary file #{backup_file}"
|
102
105
|
end
|
103
106
|
|
104
|
-
def prepare_tmp_dir
|
105
|
-
@tmp_dir = ::File.join(get_tmp, "simple_backup-#{SimpleBackup::TIMESTAMP}-#{SecureRandom.uuid}")
|
106
|
-
FileUtils.mkdir_p @tmp_dir, mode: 0700
|
107
|
-
|
108
|
-
@@logger.debug "Created tmp directory #{@tmp_dir}"
|
109
|
-
end
|
110
|
-
|
111
107
|
def get_tmp
|
112
108
|
tmp = @tmp_base_path
|
113
109
|
tmp = ::Dir.tmpdir unless tmp
|
114
|
-
|
115
110
|
tmp
|
116
111
|
end
|
117
112
|
|
118
113
|
def targz
|
119
114
|
path = @tmp_dir
|
120
115
|
|
121
|
-
|
122
|
-
|
116
|
+
tempfile = Tempfile.new("#{type}-#{name}", get_tmp)
|
117
|
+
@@logger.debug tempfile.path
|
118
|
+
|
119
|
+
Gem::Package::TarWriter.new(tempfile) do |tar|
|
120
|
+
@@logger.debug "Openet tar archive #{tar}"
|
123
121
|
::Dir[::File.join(path, '**/*')].each do |file|
|
122
|
+
@@logger.debug "Adding file #{file}"
|
124
123
|
mode = ::File.stat(file).mode
|
125
124
|
relative_file = file.sub(/^#{Regexp::escape path}\/?/, '')
|
126
125
|
|
@@ -129,20 +128,25 @@ module SimpleBackup
|
|
129
128
|
else
|
130
129
|
tar.add_file relative_file, mode do |tf|
|
131
130
|
::File.open(file, 'rb') do |f|
|
132
|
-
|
131
|
+
while f_content = f.read(512)
|
132
|
+
tf.write f_content
|
133
|
+
end
|
133
134
|
end
|
134
135
|
end
|
135
136
|
end
|
136
137
|
end
|
137
138
|
end
|
138
|
-
content.rewind
|
139
139
|
|
140
|
-
gz =
|
141
|
-
|
142
|
-
|
143
|
-
|
140
|
+
gz = ::File.open(@backup_file, 'w')
|
141
|
+
Zlib::GzipWriter.open(gz) do |zip|
|
142
|
+
tempfile.seek(0)
|
143
|
+
while f_content = tempfile.read(512)
|
144
|
+
zip.write f_content
|
145
|
+
end
|
146
|
+
end
|
144
147
|
|
145
|
-
|
148
|
+
tempfile.close
|
149
|
+
tempfile.unlink
|
146
150
|
end
|
147
151
|
end
|
148
152
|
end
|