simple_backup 0.4.1 → 0.4.2

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