middleman-s3_sync 3.0.4 → 3.0.6
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.
data/lib/middleman-s3_sync.rb
CHANGED
@@ -15,9 +15,10 @@ module Middleman
|
|
15
15
|
class << self
|
16
16
|
def sync
|
17
17
|
puts "Gathering local files."
|
18
|
-
|
18
|
+
|
19
|
+
local_files = (Dir[options.build_dir + "/**/*"] + Dir[options.build_dir + "/**/.*"])
|
19
20
|
.reject { |f| File.directory?(f) }
|
20
|
-
.map { |f| f.gsub(
|
21
|
+
.map { |f| f.gsub(/^#{options.build_dir}\//, '') }
|
21
22
|
puts "Gathering remote files."
|
22
23
|
remote_files = bucket.files.map { |f| f.key }
|
23
24
|
|
@@ -35,7 +36,7 @@ module Middleman
|
|
35
36
|
files_to_reject = []
|
36
37
|
Parallel.each(files_to_evaluate, :in_threads => 4) do |f|
|
37
38
|
print '.'
|
38
|
-
local_mtime = File.mtime("
|
39
|
+
local_mtime = File.mtime("#{options.build_dir}/#{f}")
|
39
40
|
remote_mtime = s3_files.get(f).last_modified
|
40
41
|
files_to_reject << f if remote_mtime >= local_mtime
|
41
42
|
end
|
@@ -47,7 +48,7 @@ module Middleman
|
|
47
48
|
puts "\n\nDetermine which remaining files are actually different than their S3 counterpart."
|
48
49
|
Parallel.each(files_to_evaluate, :in_threads => 4) do |f|
|
49
50
|
print '.'
|
50
|
-
local_md5 = Digest::MD5.hexdigest(File.read("
|
51
|
+
local_md5 = Digest::MD5.hexdigest(File.read("#{options.build_dir}/#{f}"))
|
51
52
|
remote_md5 = s3_files.get(f).etag
|
52
53
|
files_to_push << f if local_md5 != remote_md5
|
53
54
|
end
|
@@ -59,14 +60,14 @@ module Middleman
|
|
59
60
|
if remote_files.include?(f)
|
60
61
|
puts "Updating #{f}"
|
61
62
|
file = s3_files.get(f)
|
62
|
-
file.body = File.open("
|
63
|
+
file.body = File.open("#{options.build_dir}/#{f}")
|
63
64
|
file.public = true
|
64
65
|
file.save
|
65
66
|
else
|
66
67
|
puts "Creating #{f}"
|
67
68
|
file = bucket.files.create({
|
68
69
|
:key => f,
|
69
|
-
:body => File.open("
|
70
|
+
:body => File.open("#{options.build_dir}/#{f}"),
|
70
71
|
:public => true,
|
71
72
|
:acl => 'public-read'
|
72
73
|
})
|
@@ -4,7 +4,6 @@ module Middleman
|
|
4
4
|
module S3Sync
|
5
5
|
class Options < Struct.new(
|
6
6
|
:prefix,
|
7
|
-
:public_path,
|
8
7
|
:bucket,
|
9
8
|
:region,
|
10
9
|
:aws_access_key_id,
|
@@ -12,6 +11,7 @@ module Middleman
|
|
12
11
|
:after_build,
|
13
12
|
:delete,
|
14
13
|
:existing_remote_file,
|
14
|
+
:build_dir
|
15
15
|
)
|
16
16
|
end
|
17
17
|
|
@@ -28,11 +28,12 @@ module Middleman
|
|
28
28
|
|
29
29
|
app.send :include, Helpers
|
30
30
|
|
31
|
-
options.public_path ||= "build"
|
32
31
|
app.after_configuration do |config|
|
33
|
-
|
34
|
-
|
35
|
-
|
32
|
+
options.build_dir = build_dir
|
33
|
+
end
|
34
|
+
|
35
|
+
app.after_build do |builder|
|
36
|
+
::Middleman::S3Sync.sync if options.after_build
|
36
37
|
end
|
37
38
|
end
|
38
39
|
|
data/middleman-s3_sync.gemspec
CHANGED
metadata
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
name: middleman-s3_sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 3.0.
|
5
|
+
version: 3.0.6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Frederic Jean
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
type: :runtime
|
@@ -59,6 +59,22 @@ dependencies:
|
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
type: :development
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
name: rake
|
71
|
+
prerelease: false
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
62
78
|
description: Only syncs files that have been updated to S3.
|
63
79
|
email:
|
64
80
|
- fred@fredjean.net
|
@@ -90,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
106
|
- !ruby/object:Gem::Version
|
91
107
|
segments:
|
92
108
|
- 0
|
93
|
-
hash:
|
109
|
+
hash: 4207882760766588596
|
94
110
|
version: '0'
|
95
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
112
|
none: false
|
@@ -99,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
115
|
- !ruby/object:Gem::Version
|
100
116
|
segments:
|
101
117
|
- 0
|
102
|
-
hash:
|
118
|
+
hash: 4207882760766588596
|
103
119
|
version: '0'
|
104
120
|
requirements: []
|
105
121
|
rubyforge_project:
|