simple_backup 0.4.2 → 0.4.3

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
  SHA1:
3
- metadata.gz: 6bf4a9cc5d50117feeda791694e81ebcc8d6f7ed
4
- data.tar.gz: fcfebcc9a956f6eac79aa694f63c0c06df522286
3
+ metadata.gz: a281206ca34146fbe261483ab464cfb2d9e9c934
4
+ data.tar.gz: 847bfd234169f3978b1069f23ff1d47d337879bc
5
5
  SHA512:
6
- metadata.gz: 1c2a8673f38826bc67799a4a1a8056c2769a78040b540a84b56895ba53346a88c0f32690b4916fc5120e44459a4c9aa61d2927538569536dabc62ec2476d55ec
7
- data.tar.gz: f889560ab87b72d0ee0935ca27e6b56e5d6584b7e97692470cdec6fb8dc7f13bbcd762c8003ac2fa830a1838c5bef2b780de809c7fb6a6edd1b66f967bd2d0ff
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 "Openet tar archive #{tar}"
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.add_file relative_file, mode do |tf|
174
+ tar.add_longname_file relative_file, mode do |tf|
130
175
  ::File.open(file, 'rb') do |f|
131
- while f_content = f.read(512)
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(512)
188
+ while f_content = tempfile.read(1048576)
144
189
  zip.write f_content
145
190
  end
146
191
  end
@@ -2,7 +2,7 @@ module SimpleBackup
2
2
  class Version
3
3
  MAJOR = 0
4
4
  MINOR = 4
5
- PATCH = 2
5
+ PATCH = 3
6
6
  PRE_RELEASE = nil
7
7
 
8
8
  def self.get
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.2
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.4.5
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