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 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