s3_meta_sync 0.4.4 → 0.4.5

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: 3976f983750855ddbbc8de6d7b7a38f8b25471dc
4
- data.tar.gz: 2d707bbccab3b1b88b89191aae7ee9bf332b78d2
3
+ metadata.gz: fc959d3e973194fb4fbfb3deddef13cfa6e054df
4
+ data.tar.gz: 364d7b58956386524107f97306bca633289e6ee4
5
5
  SHA512:
6
- metadata.gz: e771453d6350103c521afb15dc23c54e4884dc20aac8e7c26a2214f4a9d7f86012e341b7e7dcd4c88ddefaaa1b75c2d8a06e4aedbdf20c2864ec3098f4d67a95
7
- data.tar.gz: c68eaf670258095a802683804ea301e68f2d644418507f56eb5b1d1af866c4ef5412b713ce1a80fddca3b81ee07b1552f1093e366adfde2aa77f1c5539eb2e07
6
+ metadata.gz: e828832357b51c5af7364d2b263e343de70a640b662b73f981f9c46577a265339857fda8baec7a0a1666053a44dac725583afb5f773d4a915adb696d12768fff
7
+ data.tar.gz: 7cda74fad51d1bb8c2ad83a71804d95cc85d812276ceb037fc772b59de8b1740239c4104774bbe0633957bb279568ce1f4770bca87384000e5a143e1a6299410
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
@@ -1,4 +1 @@
1
- U�S �9>��;����׀b�����P/��2�&^"g��Ӗf3��*��?���`\ϓ}1G��1�V
2
- k��b�!���7F뼖k5tA��y2B�8��Ƣ��"�X������n�bxRQ��,'9��K�������y\��dG/����<o�ߵdr��$�k~߁P@�����H%;�,DKϵ�|�[��5d�
3
- �|��_=D(�o��3�s��ϯY�֗ �ۖ�Q�2�E�Ru�n�|jY��P�im����
4
-
1
+ �;B@�r)�`�"L�%��-\�e�A������>Weoշ�0w�/�#�R ㇻB�X�&������<>�>�x����q�d�e��e$e=��o7��:�8״'�SM��]�z��Drچh^u�
@@ -59,7 +59,6 @@ module S3MetaSync
59
59
  end
60
60
 
61
61
  def download(source, destination)
62
- raise if @config[:zip]
63
62
  remote_meta = download_meta(source)
64
63
  local_files = ((@config[:no_local_changes] && read_meta(destination)) || meta_data(destination))[:files]
65
64
 
@@ -77,7 +76,7 @@ module S3MetaSync
77
76
  delete_empty_folders(staging_area)
78
77
  store_meta(staging_area, remote_meta)
79
78
 
80
- verify_integrity!(staging_area, destination, remote_meta[:files])
79
+ verify_integrity!(staging_area, destination, download, remote_meta[:files])
81
80
  self.class.swap_in_directory(destination, staging_area)
82
81
  FileUtils.mkdir(staging_area) # mktmpdir tries to remove this directory
83
82
  end
@@ -111,16 +110,15 @@ module S3MetaSync
111
110
  FileUtils.remove_dir(delete)
112
111
  end
113
112
 
114
- def verify_integrity!(staging_area, destination, remote)
115
- actual = meta_data(staging_area)[:files]
113
+ def verify_integrity!(staging_area, destination, changed, remote)
114
+ local = md5_hash(staging_area, changed)
115
+ corrupted = local.select { |file, md5| remote[file] != md5 }.map(&:first)
116
+ return if corrupted.empty?
116
117
 
117
- if remote != actual
118
- corrupted = actual.select { |file, md5| remote[file] && remote[file] != md5 }.map(&:first)
119
- File.write("#{destination}/#{CORRUPT_FILES_LOG}", corrupted.join("\n"))
120
- message = "corrupted files downloaded:\n#{corrupted.join("\n")}"
121
- log message, true
122
- raise RemoteCorrupt, message
123
- end
118
+ File.write("#{destination}/#{CORRUPT_FILES_LOG}", corrupted.join("\n"))
119
+ message = "corrupted files downloaded:\n#{corrupted.join("\n")}"
120
+ log message, true
121
+ raise RemoteCorrupt, message
124
122
  end
125
123
 
126
124
  def consume_corrupted_files(source)
@@ -173,15 +171,18 @@ module S3MetaSync
173
171
 
174
172
  def meta_data(source)
175
173
  return {files: {}} unless File.directory?(source)
176
- files = Dir.chdir(source) do
177
- files = Dir["**/*"].select { |f| File.file?(f) }
178
- Hash[files.map { |file| [file, Digest::MD5.file(file).to_s] }]
179
- end
180
- result = {files: files}
174
+ result = {files: md5_hash(source)}
181
175
  result[:zip] = @config[:zip] if @config[:zip]
182
176
  result
183
177
  end
184
178
 
179
+ def md5_hash(source, files=nil)
180
+ Dir.chdir(source) do
181
+ files ||= Dir["**/*"].select { |f| File.file?(f) }
182
+ Hash[files.map { |file| [file, Digest::MD5.file(file).to_s] }]
183
+ end
184
+ end
185
+
185
186
  def read_meta(source)
186
187
  file = "#{source}/#{META_FILE}"
187
188
  YAML.load(File.read(file)) if File.exist?(file)
@@ -1,3 +1,3 @@
1
1
  module S3MetaSync
2
- VERSION = "0.4.4"
2
+ VERSION = "0.4.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: s3_meta_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
@@ -30,7 +30,7 @@ cert_chain:
30
30
  F5etKHZg0j3eHO31/i2HnswY04lqGImUu6aM5EnijFTB7PPW2KwKKM4+kKDYFdlw
31
31
  /0WV1Ng2/Y6qsHwmqGg2VlYj2h4=
32
32
  -----END CERTIFICATE-----
33
- date: 2014-12-12 00:00:00.000000000 Z
33
+ date: 2014-12-13 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: aws-sdk
metadata.gz.sig CHANGED
Binary file