smart_s3_sync 0.0.12 → 0.0.14
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 +4 -4
- data/lib/smart_s3_sync.rb +14 -8
- data/lib/smart_s3_sync/file_target.rb +6 -5
- data/lib/smart_s3_sync/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8613330fab8c1fb442c003b4b87604c41ea2f4d
|
4
|
+
data.tar.gz: 098e63dde5e0c5e6f692299efca4e463cd75f1f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 984ab151ebac3d4dcab6e1423c7ed165c97943daf9ec7f22b9c01d31360ef439fd578bfd2950a78c11a7e72c15f1ffda3a691ddeeb1f0096fbeb4f7afec73b60
|
7
|
+
data.tar.gz: 99fbae0099fa91e898dfa225e54fa1a158efbffb42216c9f0db750b175c6a3defab50244d53e9cade8e2e3f1bc9ecbd4035f27135af3d2ef5a2eeae8dae40ee1
|
data/lib/smart_s3_sync.rb
CHANGED
@@ -13,17 +13,23 @@ module SmartS3Sync
|
|
13
13
|
get(remote_dir, {:prefix => remote_prefix})
|
14
14
|
|
15
15
|
# Add all files in the cloud to our map.
|
16
|
-
print "Checking Files:
|
16
|
+
$stderr.print "Checking Files: "
|
17
17
|
checked = 0
|
18
18
|
bucket.files.each do |file|
|
19
19
|
table.push(file)
|
20
|
-
|
21
|
-
|
20
|
+
if $stderr.tty?
|
21
|
+
$stderr.print "\b" * checked.to_s.length unless checked == 0
|
22
|
+
$stderr.print (checked += 1).to_s
|
23
|
+
elsif (checked += 1) == 1
|
24
|
+
$stderr.print '...'
|
25
|
+
elsif checked % 1000 == 0
|
26
|
+
$stderr.print '.'
|
27
|
+
end
|
22
28
|
end
|
23
29
|
|
24
|
-
puts "\n"
|
25
|
-
puts "Status: Need to download #{table.to_download.length} files (#{table.to_download.map(&:size).inject(&:+)} bytes)"
|
26
|
-
puts "Status: with an effective total of #{table.to_copy.inject(0){|coll, obj| coll + obj.destinations.length }} files (#{table.to_copy.map{|x| x.size * x.destinations.length }.inject(&:+)} bytes)"
|
30
|
+
$stderr.puts " done! (#{checked} files)\n"
|
31
|
+
$stderr.puts "Status: Need to download #{table.to_download.length} files (#{table.to_download.map(&:size).inject(&:+)} bytes)"
|
32
|
+
$stderr.puts "Status: with an effective total of #{table.to_copy.inject(0){|coll, obj| coll + obj.destinations.length }} files (#{table.to_copy.map{|x| x.size * x.destinations.length }.inject(&:+)} bytes)"
|
27
33
|
|
28
34
|
# And copy them to the right places
|
29
35
|
table.copy!(bucket)
|
@@ -31,14 +37,14 @@ module SmartS3Sync
|
|
31
37
|
# sweep through and remove all files not in the cloud
|
32
38
|
Dir[File.join(dir, '**/*')].each do |file|
|
33
39
|
if !File.directory?(file)
|
34
|
-
File.unlink(file) and puts "DELETING: #{file}" unless table.keep?(file)
|
40
|
+
File.unlink(file) and $stderr.puts "DELETING: #{file}" unless table.keep?(file)
|
35
41
|
end
|
36
42
|
end
|
37
43
|
|
38
44
|
# and then all empty directories
|
39
45
|
Dir[File.join(dir, '**/*')].each do |file|
|
40
46
|
if File.directory?(file) && Dir.entries(file).length == 0
|
41
|
-
puts "DELETING: #{file}"
|
47
|
+
$stderr.puts "DELETING: #{file}"
|
42
48
|
Dir.rmdir(file)
|
43
49
|
end
|
44
50
|
end
|
@@ -42,7 +42,7 @@ module SmartS3Sync
|
|
42
42
|
private
|
43
43
|
|
44
44
|
def copy_from_fog(fog_dir)
|
45
|
-
puts "Downloading #{remote_filename}"
|
45
|
+
$stderr.puts "Downloading #{remote_filename}"
|
46
46
|
tries = 0
|
47
47
|
file = nil
|
48
48
|
begin
|
@@ -57,8 +57,8 @@ module SmartS3Sync
|
|
57
57
|
rescue StandardError => e
|
58
58
|
if tries < 5
|
59
59
|
tries += 1
|
60
|
-
puts e
|
61
|
-
puts "retrying"
|
60
|
+
$stderr.puts e
|
61
|
+
$stderr.puts "retrying"
|
62
62
|
retry
|
63
63
|
else
|
64
64
|
raise e
|
@@ -69,9 +69,9 @@ module SmartS3Sync
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def copy_from_local(source)
|
72
|
-
puts "Linking #{destinations.join(', ')}"
|
72
|
+
$stderr.puts "Linking #{destinations.join(', ')}"
|
73
73
|
destinations.each do |dest|
|
74
|
-
FileUtils.mkdir_p(File.dirname(dest))
|
74
|
+
FileUtils.mkdir_p(File.dirname(dest), :mode => 0755)
|
75
75
|
FileUtils.ln(source, dest, :force => true)
|
76
76
|
DigestCache.save_record(dest, File.mtime(dest).to_i, digest.to_s)
|
77
77
|
end
|
@@ -101,6 +101,7 @@ module SmartS3Sync
|
|
101
101
|
file.write chunk
|
102
102
|
end
|
103
103
|
file.close
|
104
|
+
File.chmod(0644, file.path)
|
104
105
|
end
|
105
106
|
end
|
106
107
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_s3_sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Rhoden
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sqlite3
|