simple_backup 0.4.2 → 0.4.3
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/lib/simple_backup/source/abstract.rb +49 -4
- data/lib/simple_backup/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a281206ca34146fbe261483ab464cfb2d9e9c934
|
4
|
+
data.tar.gz: 847bfd234169f3978b1069f23ff1d47d337879bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55bb14585531c81f92054e8415e6a8f3691740b77e897ddaef8c2e0a838f9db4af2aed2f7e2c00674c97894491f4ce7ec14b40ddc505e566e91d50a8c3d38cc6
|
7
|
+
data.tar.gz: 11dbe49c154974c73e59b852e665938e868226c69b9ae8ea260517a01cd7d7d4c6b6fe53bbf46fa787015f3dbf4d152215417682fc4e5abcf4f6b6833e42f41e
|
@@ -5,6 +5,51 @@ require 'tmpdir'
|
|
5
5
|
require 'tempfile'
|
6
6
|
require 'zlib'
|
7
7
|
|
8
|
+
class Gem::Package::TarWriter
|
9
|
+
LONGLINK_NAME = '././@LongLink'
|
10
|
+
|
11
|
+
def add_long_link(name, mode)
|
12
|
+
check_closed
|
13
|
+
|
14
|
+
raise Gem::Package::NonSeekableIO unless @io.respond_to? :pos=
|
15
|
+
|
16
|
+
init_pos = @io.pos
|
17
|
+
@io.write "\0" * 512 # placeholder for the header
|
18
|
+
@io.write name
|
19
|
+
size = @io.pos - init_pos - 512
|
20
|
+
|
21
|
+
remainder = (512 - (size % 512)) % 512
|
22
|
+
@io.write "\0" * remainder
|
23
|
+
|
24
|
+
final_pos = @io.pos
|
25
|
+
@io.pos = init_pos
|
26
|
+
|
27
|
+
header = Gem::Package::TarHeader.new name: LONGLINK_NAME, mode: mode,
|
28
|
+
size: size, prefix: '',
|
29
|
+
typeflag: 'L'
|
30
|
+
|
31
|
+
@io.write header
|
32
|
+
@io.pos = final_pos
|
33
|
+
|
34
|
+
self
|
35
|
+
end
|
36
|
+
|
37
|
+
def add_longname_file(*arguments)
|
38
|
+
tries ||= 1
|
39
|
+
if block_given?
|
40
|
+
add_file(*arguments, &Proc.new)
|
41
|
+
else
|
42
|
+
add_file(*arguments)
|
43
|
+
end
|
44
|
+
rescue Gem::Package::TooLongFileName => e
|
45
|
+
add_long_link *arguments
|
46
|
+
arguments.first.slice!(0, 100)
|
47
|
+
|
48
|
+
retry if (tries -= 1) >= 0
|
49
|
+
raise e
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
8
53
|
module SimpleBackup
|
9
54
|
module Source
|
10
55
|
class Abstract
|
@@ -117,7 +162,7 @@ module SimpleBackup
|
|
117
162
|
@@logger.debug tempfile.path
|
118
163
|
|
119
164
|
Gem::Package::TarWriter.new(tempfile) do |tar|
|
120
|
-
@@logger.debug "
|
165
|
+
@@logger.debug "Opened tar archive #{tar}"
|
121
166
|
::Dir[::File.join(path, '**/*')].each do |file|
|
122
167
|
@@logger.debug "Adding file #{file}"
|
123
168
|
mode = ::File.stat(file).mode
|
@@ -126,9 +171,9 @@ module SimpleBackup
|
|
126
171
|
if ::File.directory?(file)
|
127
172
|
tar.mkdir(relative_file, mode)
|
128
173
|
else
|
129
|
-
tar.
|
174
|
+
tar.add_longname_file relative_file, mode do |tf|
|
130
175
|
::File.open(file, 'rb') do |f|
|
131
|
-
while f_content = f.read(
|
176
|
+
while f_content = f.read(1048576)
|
132
177
|
tf.write f_content
|
133
178
|
end
|
134
179
|
end
|
@@ -140,7 +185,7 @@ module SimpleBackup
|
|
140
185
|
gz = ::File.open(@backup_file, 'w')
|
141
186
|
Zlib::GzipWriter.open(gz) do |zip|
|
142
187
|
tempfile.seek(0)
|
143
|
-
while f_content = tempfile.read(
|
188
|
+
while f_content = tempfile.read(1048576)
|
144
189
|
zip.write f_content
|
145
190
|
end
|
146
191
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_backup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomasz Maczukin
|
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
119
|
version: '0'
|
120
120
|
requirements: []
|
121
121
|
rubyforge_project:
|
122
|
-
rubygems_version: 2.
|
122
|
+
rubygems_version: 2.2.2
|
123
123
|
signing_key:
|
124
124
|
specification_version: 4
|
125
125
|
summary: Backup tool with simple DSL for configuration
|