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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c6501e16071df57faa608b6f7a1d9b39de67286
4
- data.tar.gz: 7b34e18d1444980aa6e45573e11f4323231dea09
3
+ metadata.gz: 6bf4a9cc5d50117feeda791694e81ebcc8d6f7ed
4
+ data.tar.gz: fcfebcc9a956f6eac79aa694f63c0c06df522286
5
5
  SHA512:
6
- metadata.gz: a44d236089f3f903b5e8463f0b7a588bb596d94d9d460376a69581aa3140170bef4377aa0010f4d13d012c4e80ea80524c7d35f8b95ff8d7526f44416cdf07e9
7
- data.tar.gz: a41711c5c5d4cf7a3da7191a3e5767d01bdb18efe18435b394f45678380be6c05fcde25b327d4ae65cfc933d4fddac5a8cd7ae35ab8778be1f7e5330d1c7100e
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
- prepare_tmp_dir
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
- ::File.open(backup_file, 'w') do |f|
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
- content = StringIO.new('');
122
- Gem::Package::TarWriter.new(content) do |tar|
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
- tf.write f.read
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 = StringIO.new('')
141
- zip = Zlib::GzipWriter.new(gz)
142
- zip.write content.string
143
- zip.close
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
- gz
148
+ tempfile.close
149
+ tempfile.unlink
146
150
  end
147
151
  end
148
152
  end
@@ -2,7 +2,7 @@ module SimpleBackup
2
2
  class Version
3
3
  MAJOR = 0
4
4
  MINOR = 4
5
- PATCH = 1
5
+ PATCH = 2
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.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomasz Maczukin