capistrano-s3 0.2.11 → 0.3.0

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: 3d06a9aa33293cfcdd5941b86461010867cc95ef
4
- data.tar.gz: 3aa43f1c1d04231492362e93e11d495eef14e88d
3
+ metadata.gz: f197de9db4d3c744c215aa5919b2413cdee20ca6
4
+ data.tar.gz: 814d5136a7837d65906aa63f31939f8f1399edd8
5
5
  SHA512:
6
- metadata.gz: ef49af4bfe32ab6b506961de8e14d3eab16d33258edaed5ce7442f38d93c184817ffbc6d243a669b06ff30cbce61b6807973c736e162b7f7a2971143788eaadc
7
- data.tar.gz: eece9d7231502b2040df3ac4c9965acc398e1c8e9baa50c16dc15c16c448687fe30190b1500340059faecd14b8db0ddae2a938b25f26a5d7a98069036edb00dd
6
+ metadata.gz: 0149e3d1f3b5736644a32efccc4ee25b25d64d9819eda4f1822816385c5dabab81226a04b051bb57c41c18f360681a9537f82d1cb3a32de68dfc81cf413baa2d
7
+ data.tar.gz: ef18df3303616991b36e32d5a16221c273d86dc8a3dffa76fd5fb5df8fb4f729a33ae8ac834269af70fd421661981509e5ce7f18d3a9b6423a056a90eae95c6f
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  *.gem
2
- .last_published
2
+ .last_published
3
+ Gemfile.lock
data/.travis.yml CHANGED
@@ -1,5 +1,7 @@
1
1
  language: ruby
2
2
  bundler_args: --without debug release
3
+ before_install:
4
+ - gem install bundler
3
5
  rvm:
4
6
  - 1.9.3
5
7
  - 2.0.0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.3.0
4
+
5
+ Feature: Add Capistrano 3.x support (#17)
6
+ Improvement: Set correct headers for ".gz" files. (#21)
7
+
3
8
  ## v0.2.11
4
9
 
5
10
  Updated signing certificate.
data/Gemfile CHANGED
@@ -1,17 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- group :debug do
4
- gem 'awesome_print'
5
- end
6
-
7
- group :test do
8
- gem 'rake'
9
- gem 'rspec'
10
- gem 'mocha'
11
- end
12
-
13
- group :release do
14
- gem 'gem-release'
15
- end
16
-
17
3
  gemspec
data/README.md CHANGED
@@ -23,34 +23,54 @@ gem 'capistrano-s3'
23
23
 
24
24
  ### Setup
25
25
 
26
- Install gems with bundle, init capistrano & create your public folder that will be published :
26
+ Install gems with bundle and create your public folder that will be published :
27
27
 
28
28
  bundle install
29
- bundle exec capify .
30
- mkdir public
29
+ mkdir -p public
31
30
 
32
- ### Deploy configuration
31
+ Gem supports both flavors of Capistrano (2/3). Configurations between versions differ a bit though.
33
32
 
34
- Replace `deploy.rb` content generated by capify
35
- with these simple Amazon S3 configurations :
33
+ #### Capistrano 2
36
34
 
37
- ```ruby
38
- # config/deploy.rb
39
- require 'capistrano/s3'
35
+ First initialise Capistrano for given project - `bundle exec capify .`
40
36
 
41
- set :bucket, "www.cool-website-bucket.com"
42
- set :access_key_id, "CHANGETHIS"
43
- set :secret_access_key, "CHANGETHIS"
44
- ```
37
+ Replace `deploy.rb` content generated by capify
38
+ with these simple Amazon S3 configurations :
45
39
 
46
- ### Deploying
40
+ # config/deploy.rb
41
+ require 'capistrano/s3'
47
42
 
48
- Add content to your public folder and run `cap deploy`.
43
+ set :bucket, "www.cool-website-bucket.com"
44
+ set :access_key_id, "CHANGETHIS"
45
+ set :secret_access_key, "CHANGETHIS"
49
46
 
50
47
  If you want to deploy to multiple buckets, have a look at
51
48
  [Capistrano multistage](https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension)
52
49
  and configure a bucket per stage configuration.
53
50
 
51
+ #### Capistrano 3
52
+
53
+ Initialise Capistrano by running - `bundle exec cap install`
54
+
55
+ Next add `require "capistrano/s3"` to Capfile.
56
+
57
+ Finally, replace `deploy.rb` content generated by Capistrano with
58
+ this config:
59
+
60
+ # config/deploy.rb
61
+ set :bucket, "www.cool-website-bucket.com"
62
+ set :access_key_id, "CHANGETHIS"
63
+ set :secret_access_key, "CHANGETHIS"
64
+
65
+ ### Deploying
66
+
67
+ Add content to your public folder and run deploy command:
68
+ - `cap deploy` (Capistrano 2)
69
+
70
+ or
71
+
72
+ - `cap <stage> deploy` (Capistrano 3).
73
+
54
74
  ## Advanced options
55
75
 
56
76
  ### Custom endpoint
@@ -3,8 +3,8 @@ $:.unshift(File.dirname(__FILE__) + '/lib')
3
3
  require 'capistrano/s3/version'
4
4
 
5
5
  Gem::Specification.new do |s|
6
- s.authors = ['Jean-Philippe Doyle','Josh Delsman','Aleksandrs Ļedovskis','Douglas Jarquin', 'Amit Barvaz']
7
- s.email = ['jeanphilippe.doyle@hooktstudios.com']
6
+ s.authors = ['Jean-Philippe Doyle','Josh Delsman','Aleksandrs Ļedovskis','Douglas Jarquin', 'Amit Barvaz', 'Jan Lindblom']
7
+ s.email = ['jeanphilippe.doyle@hooktstudios.com', 'aleksandrs@ledovskis.lv']
8
8
  s.description = 'Enables static websites deployment to Amazon S3 website buckets using Capistrano.'
9
9
  s.summary = 'Build and deploy a static website to Amazon S3'
10
10
  s.homepage = 'http://github.com/hooktstudios/capistrano-s3'
@@ -15,11 +15,19 @@ Gem::Specification.new do |s|
15
15
  s.name = 'capistrano-s3'
16
16
  s.require_paths = ['lib']
17
17
  s.version = Capistrano::S3::VERSION
18
- s.cert_chain = ['certs/j15e.pem']
18
+ s.cert_chain = ['certs/aleksandrs-ledovskis.pem']
19
19
  s.signing_key = File.expand_path("~/.ssh/gem-private_key.pem") if $0 =~ /gem\z/
20
20
 
21
21
  # Gem dependencies
22
- s.add_dependency 'aws-sdk', '~> 1.11'
23
- s.add_dependency 'capistrano', '< 3'
24
- s.add_dependency 'mime-types', '~> 1.23'
22
+ s.add_runtime_dependency 'aws-sdk', '~> 1.11'
23
+ s.add_runtime_dependency 'capistrano', '>= 2'
24
+ s.add_runtime_dependency 'mime-types', '~> 1.23'
25
+ s.add_runtime_dependency 'net-ssh', '~> 2.9'
26
+
27
+ # Development dependencies
28
+ s.add_development_dependency 'rake'
29
+ s.add_development_dependency 'rspec'
30
+ s.add_development_dependency 'mocha'
31
+ s.add_development_dependency 'awesome_print'
32
+ s.add_development_dependency 'gem-release'
25
33
  end
@@ -0,0 +1,21 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDhTCCAm2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMRMwEQYDVQQDDAphbGVr
3
+ c2FuZHJzMRkwFwYKCZImiZPyLGQBGRYJbGVkb3Zza2lzMRIwEAYKCZImiZPyLGQB
4
+ GRYCbHYwHhcNMTYwMTAzMTgwNjU5WhcNMTcwMTAyMTgwNjU5WjBEMRMwEQYDVQQD
5
+ DAphbGVrc2FuZHJzMRkwFwYKCZImiZPyLGQBGRYJbGVkb3Zza2lzMRIwEAYKCZIm
6
+ iZPyLGQBGRYCbHYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4ZS6n
7
+ v2xGstpdX2C2VYlIxJsaZ28u/vc05MA9qCYp2DsEb7956MHSRYWADOMmxHscLc6w
8
+ x79ecayifaDx8mQlKZ/sEM1jkHsm8rtL1Slm8nJoP1JBhbHa3ZHWHcwhi3pIS/JY
9
+ z19tSYHNzB8nFvVspfyjJT4tBtrXQCoNYFrTYYAn+UlpA1yYsDYeyRJJBhIakA5E
10
+ JW01InrCA2zUi0lyuhBBPZNkSaUFXSkXKxgJcTRln0PXCYTRsk21JqxeVQaLp2/y
11
+ oq7JFJacwxKANQI/rDpMrSrvtGQW2CMcXz+SqUQHsko8KGSh7w8EaxA0R9zPtsYg
12
+ Jg1fXc5spVlJH9sJAgMBAAGjgYEwfzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAd
13
+ BgNVHQ4EFgQUQO5dMalHx8ow/7njDvSCb5wPoTYwIgYDVR0RBBswGYEXYWxla3Nh
14
+ bmRyc0BsZWRvdnNraXMubHYwIgYDVR0SBBswGYEXYWxla3NhbmRyc0BsZWRvdnNr
15
+ aXMubHYwDQYJKoZIhvcNAQEFBQADggEBAHr6mHIB4Wagt+1rSYtZd55A3xkOk4/x
16
+ Pxg6EoAql/siXlhei+l5IDqTzqSBakw9NLXgrAIMYMmi6Y7ryv5dIHigf3rpvU9l
17
+ nmjW31hb/3hbY4rESjolO79Mdsawyh2ikG9FSb5CeLQDKCq9eJCfUbSYQ0FANhlb
18
+ v3op3Aa25YFxDpJnzPgOlChUvdo5NsbVyfqqqgtcPqMKO/1Tc91M7bg3nErOgMGR
19
+ JEnsJLaGVuWh+EfN0hAHmZTiTB7KQAxoxyyBRFGnmho+VAZCVhgvK4SOhLzTDGg3
20
+ jHydeDCzaagIJgK21Bl2UEaNGqHPU6bycWBr4SiiAqgf5Ebiz9da58A=
21
+ -----END CERTIFICATE-----
data/lib/capistrano/s3.rb CHANGED
@@ -1,43 +1,10 @@
1
- require 'capistrano'
2
- require 'capistrano/s3/version'
3
- require 'capistrano/s3/publisher'
4
-
5
- module Capistrano
6
- unless Configuration.respond_to?(:instance)
7
- abort "capistrano-s3 requires Capistrano 2.0 or newer"
8
- end
9
-
10
- Configuration.instance(true).load do
11
- def _cset(name, *args, &block)
12
- set(name, *args, &block) if !exists?(name)
13
- end
14
-
15
- _cset :deployment_path, Dir.pwd.gsub("\n", "") + "/public"
16
- _cset :bucket_write_options, :acl => :public_read
17
- _cset :s3_endpoint, 's3.amazonaws.com'
18
- _cset :redirect_options, {}
19
-
20
- # Deployment recipes
21
- namespace :deploy do
22
- namespace :s3 do
23
- desc "Empties bucket of all files. Caution when using this command, as it cannot be undone!"
24
- task :empty do
25
- S3::Publisher.clear!(s3_endpoint, access_key_id, secret_access_key, bucket)
26
- end
27
-
28
- desc "Upload files to the bucket in the current state"
29
- task :upload_files do
30
- extra_options = { :write => bucket_write_options, :redirect => redirect_options }
31
- S3::Publisher.publish!(s3_endpoint, access_key_id, secret_access_key,
32
- bucket, deployment_path, extra_options)
33
- end
34
- end
35
-
36
- task :update do
37
- s3.upload_files
38
- end
39
-
40
- task :restart do; end
41
- end
42
- end
1
+ require "capistrano"
2
+ require "capistrano/s3/publisher"
3
+ require "capistrano/s3/version"
4
+ require "capistrano/s3/defaults"
5
+
6
+ if Gem::Specification.find_by_name('capistrano').version >= Gem::Version.new('3.0.0')
7
+ load File.expand_path('../tasks/capistrano_3.rb', __FILE__)
8
+ else
9
+ require_relative 'tasks/capistrano_2'
43
10
  end
@@ -0,0 +1,19 @@
1
+ module Capistrano
2
+ module S3
3
+ module Defaults
4
+ DEFAULTS = {
5
+ :deployment_path => proc { Dir.pwd.gsub("\n", "") + "/public" },
6
+ :bucket_write_options => { :acl => :public_read },
7
+ :s3_endpoint => "s3.amazonaws.com",
8
+ :redirect_options => {},
9
+ }
10
+
11
+ def self.populate(context, set_method)
12
+ DEFAULTS.each do |key, value|
13
+ value = value.is_a?(Proc) ? value.call : value
14
+ context.send(set_method, key, value)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -2,93 +2,121 @@ require 'aws/s3'
2
2
  require 'mime/types'
3
3
  require 'fileutils'
4
4
 
5
- module Capistrano::S3::Publisher
5
+ module Capistrano
6
+ module S3
7
+ module Publisher
8
+ LAST_PUBLISHED_FILE = '.last_published'
6
9
 
7
- LAST_PUBLISHED_FILE = '.last_published'
10
+ def self.publish!(s3_endpoint, key, secret, bucket, source, extra_options)
11
+ s3 = self.establish_s3_client_connection!(s3_endpoint, key, secret)
8
12
 
9
- def self.publish!(s3_endpoint, key, secret, bucket, source, extra_options)
10
- s3 = self.establish_s3_client_connection!(s3_endpoint, key, secret)
13
+ self.files(source).each do |file|
14
+ if !File.directory?(file)
15
+ next if self.published?(file)
11
16
 
12
- self.files(source).each do |file|
13
- if !File.directory?(file)
14
- next if self.published?(file)
17
+ path = self.base_file_path(source, file)
18
+ path.gsub!(/^\//, "") # Remove preceding slash for S3
15
19
 
16
- path = self.base_file_path(source, file)
17
- path.gsub!(/^\//, "") # Remove preceding slash for S3
20
+ self.put_object(s3, bucket, path, file, extra_options)
21
+ end
22
+ end
18
23
 
19
- self.put_object(s3, bucket, path, file, extra_options)
24
+ FileUtils.touch(LAST_PUBLISHED_FILE)
20
25
  end
21
- end
22
-
23
- FileUtils.touch(LAST_PUBLISHED_FILE)
24
- end
25
-
26
- def self.clear!(s3_endpoint, key, secret, bucket)
27
- s3 = self.establish_s3_connection!(s3_endpoint, key, secret)
28
- s3.buckets[bucket].clear!
29
-
30
- FileUtils.rm(LAST_PUBLISHED_FILE)
31
- end
32
-
33
- private
34
-
35
- # Establishes the connection to Amazon S3
36
- def self.establish_connection!(klass, s3_endpoint, key, secret)
37
- # Send logging to STDOUT
38
- AWS.config(:logger => Logger.new(STDOUT))
39
- klass.new(
40
- :s3_endpoint => s3_endpoint,
41
- :access_key_id => key,
42
- :secret_access_key => secret
43
- )
44
- end
45
-
46
- def self.establish_s3_client_connection!(s3_endpoint, key, secret)
47
- self.establish_connection!(AWS::S3::Client, s3_endpoint, key, secret)
48
- end
49
-
50
- def self.establish_s3_connection!(s3_endpoint, key, secret)
51
- self.establish_connection!(AWS::S3, s3_endpoint, key, secret)
52
- end
53
-
54
- def self.base_file_path(root, file)
55
- file.gsub(root, "")
56
- end
57
-
58
- def self.files(deployment_path)
59
- Dir.glob("#{deployment_path}/**/*")
60
- end
61
26
 
62
- def self.published?(file)
63
- return false unless File.exists? LAST_PUBLISHED_FILE
64
- File.mtime(file) < File.mtime(LAST_PUBLISHED_FILE)
65
- end
27
+ def self.clear!(s3_endpoint, key, secret, bucket)
28
+ s3 = self.establish_s3_connection!(s3_endpoint, key, secret)
29
+ s3.buckets[bucket].clear!
66
30
 
67
- def self.put_object(s3, bucket, path, file, extra_options)
68
- options = {
69
- :bucket_name => bucket,
70
- :key => path,
71
- :data => open(file),
72
- :acl => :public_read,
73
- }
74
-
75
- options.merge!(self.build_content_type_hash(file))
76
- options.merge!(self.build_redirect_hash(path, extra_options[:redirect]))
77
- options.merge!(extra_options[:write]) if extra_options[:write]
78
-
79
- s3.put_object(options)
80
- end
81
-
82
- def self.build_content_type_hash(file)
83
- type = MIME::Types.type_for(File.basename(file))
84
- return {} unless type && !type.empty?
85
-
86
- { :content_type => type.first.content_type }
87
- end
88
-
89
- def self.build_redirect_hash(path, redirect_options)
90
- return {} unless redirect_options && redirect_options[path]
31
+ FileUtils.rm(LAST_PUBLISHED_FILE)
32
+ end
91
33
 
92
- { :website_redirect_location => redirect_options[path] }
34
+ private
35
+
36
+ # Establishes the connection to Amazon S3
37
+ def self.establish_connection!(klass, s3_endpoint, key, secret)
38
+ # Send logging to STDOUT
39
+ AWS.config(:logger => ::Logger.new(STDOUT))
40
+ klass.new(
41
+ :s3_endpoint => s3_endpoint,
42
+ :access_key_id => key,
43
+ :secret_access_key => secret
44
+ )
45
+ end
46
+
47
+ def self.establish_s3_client_connection!(s3_endpoint, key, secret)
48
+ self.establish_connection!(AWS::S3::Client, s3_endpoint, key, secret)
49
+ end
50
+
51
+ def self.establish_s3_connection!(s3_endpoint, key, secret)
52
+ self.establish_connection!(AWS::S3, s3_endpoint, key, secret)
53
+ end
54
+
55
+ def self.base_file_path(root, file)
56
+ file.gsub(root, "")
57
+ end
58
+
59
+ def self.files(deployment_path)
60
+ Dir.glob("#{deployment_path}/**/*")
61
+ end
62
+
63
+ def self.published?(file)
64
+ return false unless File.exists? LAST_PUBLISHED_FILE
65
+ File.mtime(file) < File.mtime(LAST_PUBLISHED_FILE)
66
+ end
67
+
68
+ def self.put_object(s3, bucket, path, file, extra_options)
69
+ base_name = File.basename(file)
70
+ mime_type = mime_type_for_file(base_name)
71
+ options = {
72
+ :bucket_name => bucket,
73
+ :key => path,
74
+ :data => open(file),
75
+ :acl => :public_read,
76
+ }
77
+
78
+ options.merge!(build_redirect_hash(path, extra_options[:redirect]))
79
+ options.merge!(extra_options[:write] || {})
80
+
81
+ if mime_type
82
+ options.merge!(build_content_type_hash(mime_type))
83
+
84
+ if mime_type.sub_type == "gzip"
85
+ options.merge!(build_gzip_content_encoding_hash)
86
+ options.merge!(build_gzip_content_type_hash(file, mime_type))
87
+ end
88
+ end
89
+
90
+ s3.put_object(options)
91
+ end
92
+
93
+ def self.build_redirect_hash(path, redirect_options)
94
+ return {} unless redirect_options && redirect_options[path]
95
+
96
+ { :website_redirect_location => redirect_options[path] }
97
+ end
98
+
99
+ def self.build_content_type_hash(mime_type)
100
+ { :content_type => mime_type.content_type }
101
+ end
102
+
103
+ def self.build_gzip_content_encoding_hash
104
+ { :content_encoding => "gzip" }
105
+ end
106
+
107
+ def self.build_gzip_content_type_hash(file, mime_type)
108
+ orig_name = file.sub(/\.gz$/, "")
109
+ orig_mime = mime_type_for_file(orig_name)
110
+
111
+ return {} unless orig_mime && File.exist?(orig_name)
112
+
113
+ { :content_type => orig_mime.content_type }
114
+ end
115
+
116
+ def self.mime_type_for_file(file)
117
+ type = MIME::Types.type_for(file)
118
+ (type && !type.empty?) ? type[0] : nil
119
+ end
93
120
  end
121
+ end
94
122
  end
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module S3
3
- VERSION = "0.2.11"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -0,0 +1,32 @@
1
+ module Capistrano
2
+ Configuration.instance(true).load do
3
+ def _cset(name, *args, &block)
4
+ set(name, *args, &block) if !exists?(name)
5
+ end
6
+
7
+ Capistrano::S3::Defaults.populate(self, :_cset)
8
+
9
+ # Deployment recipes
10
+ namespace :deploy do
11
+ namespace :s3 do
12
+ desc "Empties bucket of all files. Caution when using this command, as it cannot be undone!"
13
+ task :empty do
14
+ S3::Publisher.clear!(s3_endpoint, access_key_id, secret_access_key, bucket)
15
+ end
16
+
17
+ desc "Upload files to the bucket in the current state"
18
+ task :upload_files do
19
+ extra_options = { :write => bucket_write_options, :redirect => redirect_options }
20
+ S3::Publisher.publish!(s3_endpoint, access_key_id, secret_access_key,
21
+ bucket, deployment_path, extra_options)
22
+ end
23
+ end
24
+
25
+ task :update do
26
+ s3.upload_files
27
+ end
28
+
29
+ task :restart do; end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,25 @@
1
+ namespace :load do
2
+ task :defaults do
3
+ Capistrano::S3::Defaults.populate(self, :set)
4
+ end
5
+ end
6
+
7
+ namespace :deploy do
8
+ namespace :s3 do
9
+ desc "Empties bucket of all files. Caution when using this command, as it cannot be undone!"
10
+ task :empty do
11
+ Capistrano::S3::Publisher.clear!(fetch(:s3_endpoint), fetch(:access_key_id), fetch(:secret_access_key), fetch(:bucket))
12
+ end
13
+
14
+ desc "Upload files to the bucket in the current state"
15
+ task :upload_files do
16
+ extra_options = { :write => fetch(:bucket_write_options), :redirect => fetch(:redirect_options) }
17
+ Capistrano::S3::Publisher.publish!(fetch(:s3_endpoint), fetch(:access_key_id), fetch(:secret_access_key),
18
+ fetch(:bucket), fetch(:deployment_path), extra_options)
19
+ end
20
+ end
21
+
22
+ before :updated, :upload_s3 do
23
+ invoke("deploy:s3:upload_files")
24
+ end
25
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.11
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Philippe Doyle
@@ -9,33 +9,33 @@ authors:
9
9
  - Aleksandrs Ļedovskis
10
10
  - Douglas Jarquin
11
11
  - Amit Barvaz
12
+ - Jan Lindblom
12
13
  autorequire:
13
14
  bindir: bin
14
15
  cert_chain:
15
16
  - |
16
17
  -----BEGIN CERTIFICATE-----
17
- MIIDmjCCAoKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBJMRswGQYDVQQDDBJqZWFu
18
- cGhpbGlwcGUuZG95bGUxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT
19
- 8ixkARkWA2NvbTAeFw0xNTAyMDIxNjQ5NTNaFw0xNjAyMDIxNjQ5NTNaMEkxGzAZ
20
- BgNVBAMMEmplYW5waGlsaXBwZS5kb3lsZTEVMBMGCgmSJomT8ixkARkWBWdtYWls
21
- MRMwEQYKCZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
22
- CgKCAQEAzpnUIh2dzSBkAghI4ZzdefobWdGH8M9yjiyZl4DfO+LSLV5ovcqVYPYr
23
- fzHm4TJO4w0S7jnfdwq45mGO3ogEMbmQLz4B/bUZXVHX0K9//KRroseRCUH24BE0
24
- q46UCeaFMs5wGcniT7XhuDcqPQaqCIxDE1aBxcKlZg8i62yM3BO/yX5DwLPqhyEu
25
- XVViJ+PvHjUGa69iw1fqUs9PZaf9WdKHyPHhgbhwy7xqx7EavG+tmHQUxtIf7xhl
26
- OU80hUsHQrkj5PxPU2Qfs6q2jOxrfRcUSBJZxUDzjmbhP9eq0XN+b5/Cqz3OboSI
27
- nWF0Kj0971wJgZiNdzXsLMy+zmHdiQIDAQABo4GMMIGJMAkGA1UdEwQCMAAwCwYD
28
- VR0PBAQDAgSwMB0GA1UdDgQWBBRro81JisHXRBP5dZh5mzOEHsjLxTAnBgNVHREE
29
- IDAegRxqZWFucGhpbGlwcGUuZG95bGVAZ21haWwuY29tMCcGA1UdEgQgMB6BHGpl
30
- YW5waGlsaXBwZS5kb3lsZUBnbWFpbC5jb20wDQYJKoZIhvcNAQEFBQADggEBAGHG
31
- D1ue02ll73MLx4J5IRsF/J4rPUbo+p8pawvBCgH0awoYUJFekvbut8AMRzC4JlZ0
32
- nSCTgvkM5PdFj5fptnnthb1+09oDR6iKfLcSSmyFKlEh+vpbkp0YsKyh7BLs+JrJ
33
- 81UJFxFsZg6BDhLolSJW2AnjMXOnXuGHiBSo7HDGdZDKELqrEMtX4Jr9hSvGBrza
34
- AJrNT4WI/JyEwNKpI7PflqnmXWpEwzSDu1L+HCn+sRQ41s1KeWEQTZLpB53lAPAg
35
- 0BLRj97DRMQzoo+JT8hzfSbUNi/A8++vfRmt3S9M3XsPEMS87qDbomggam5OhepG
36
- 9tXfRi8fswcQo96T+yg=
18
+ MIIDhTCCAm2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMRMwEQYDVQQDDAphbGVr
19
+ c2FuZHJzMRkwFwYKCZImiZPyLGQBGRYJbGVkb3Zza2lzMRIwEAYKCZImiZPyLGQB
20
+ GRYCbHYwHhcNMTYwMTAzMTgwNjU5WhcNMTcwMTAyMTgwNjU5WjBEMRMwEQYDVQQD
21
+ DAphbGVrc2FuZHJzMRkwFwYKCZImiZPyLGQBGRYJbGVkb3Zza2lzMRIwEAYKCZIm
22
+ iZPyLGQBGRYCbHYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4ZS6n
23
+ v2xGstpdX2C2VYlIxJsaZ28u/vc05MA9qCYp2DsEb7956MHSRYWADOMmxHscLc6w
24
+ x79ecayifaDx8mQlKZ/sEM1jkHsm8rtL1Slm8nJoP1JBhbHa3ZHWHcwhi3pIS/JY
25
+ z19tSYHNzB8nFvVspfyjJT4tBtrXQCoNYFrTYYAn+UlpA1yYsDYeyRJJBhIakA5E
26
+ JW01InrCA2zUi0lyuhBBPZNkSaUFXSkXKxgJcTRln0PXCYTRsk21JqxeVQaLp2/y
27
+ oq7JFJacwxKANQI/rDpMrSrvtGQW2CMcXz+SqUQHsko8KGSh7w8EaxA0R9zPtsYg
28
+ Jg1fXc5spVlJH9sJAgMBAAGjgYEwfzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAd
29
+ BgNVHQ4EFgQUQO5dMalHx8ow/7njDvSCb5wPoTYwIgYDVR0RBBswGYEXYWxla3Nh
30
+ bmRyc0BsZWRvdnNraXMubHYwIgYDVR0SBBswGYEXYWxla3NhbmRyc0BsZWRvdnNr
31
+ aXMubHYwDQYJKoZIhvcNAQEFBQADggEBAHr6mHIB4Wagt+1rSYtZd55A3xkOk4/x
32
+ Pxg6EoAql/siXlhei+l5IDqTzqSBakw9NLXgrAIMYMmi6Y7ryv5dIHigf3rpvU9l
33
+ nmjW31hb/3hbY4rESjolO79Mdsawyh2ikG9FSb5CeLQDKCq9eJCfUbSYQ0FANhlb
34
+ v3op3Aa25YFxDpJnzPgOlChUvdo5NsbVyfqqqgtcPqMKO/1Tc91M7bg3nErOgMGR
35
+ JEnsJLaGVuWh+EfN0hAHmZTiTB7KQAxoxyyBRFGnmho+VAZCVhgvK4SOhLzTDGg3
36
+ jHydeDCzaagIJgK21Bl2UEaNGqHPU6bycWBr4SiiAqgf5Ebiz9da58A=
37
37
  -----END CERTIFICATE-----
38
- date: 2015-02-02 00:00:00.000000000 Z
38
+ date: 2016-01-03 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: aws-sdk
@@ -55,16 +55,16 @@ dependencies:
55
55
  name: capistrano
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "<"
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: '3'
60
+ version: '2'
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "<"
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: '3'
67
+ version: '2'
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: mime-types
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -79,10 +79,95 @@ dependencies:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
81
  version: '1.23'
82
+ - !ruby/object:Gem::Dependency
83
+ name: net-ssh
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '2.9'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '2.9'
96
+ - !ruby/object:Gem::Dependency
97
+ name: rake
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rspec
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: mocha
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ - !ruby/object:Gem::Dependency
139
+ name: awesome_print
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ - !ruby/object:Gem::Dependency
153
+ name: gem-release
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
82
166
  description: Enables static websites deployment to Amazon S3 website buckets using
83
167
  Capistrano.
84
168
  email:
85
169
  - jeanphilippe.doyle@hooktstudios.com
170
+ - aleksandrs@ledovskis.lv
86
171
  executables: []
87
172
  extensions: []
88
173
  extra_rdoc_files: []
@@ -92,15 +177,18 @@ files:
92
177
  - CHANGELOG.md
93
178
  - CONTRIBUTING.md
94
179
  - Gemfile
95
- - Gemfile.lock
96
180
  - LICENSE
97
181
  - README.md
98
182
  - Rakefile
99
183
  - capistrano-s3.gemspec
184
+ - certs/aleksandrs-ledovskis.pem
100
185
  - certs/j15e.pem
101
186
  - lib/capistrano/s3.rb
187
+ - lib/capistrano/s3/defaults.rb
102
188
  - lib/capistrano/s3/publisher.rb
103
189
  - lib/capistrano/s3/version.rb
190
+ - lib/capistrano/tasks/capistrano_2.rb
191
+ - lib/capistrano/tasks/capistrano_3.rb
104
192
  - spec/publisher_spec.rb
105
193
  - spec/sample/fonts/cantarell-regular-webfont.eot
106
194
  - spec/sample/fonts/cantarell-regular-webfont.svg
@@ -127,7 +215,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
215
  version: '0'
128
216
  requirements: []
129
217
  rubyforge_project:
130
- rubygems_version: 2.4.3
218
+ rubygems_version: 2.4.5
131
219
  signing_key:
132
220
  specification_version: 4
133
221
  summary: Build and deploy a static website to Amazon S3
metadata.gz.sig CHANGED
Binary file
data/Gemfile.lock DELETED
@@ -1,65 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- capistrano-s3 (0.2.11)
5
- aws-sdk (~> 1.11)
6
- capistrano (< 3)
7
- mime-types (~> 1.23)
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- awesome_print (1.2.0)
13
- aws-sdk (1.61.0)
14
- aws-sdk-v1 (= 1.61.0)
15
- aws-sdk-v1 (1.61.0)
16
- json (~> 1.4)
17
- nokogiri (>= 1.4.4)
18
- capistrano (2.15.5)
19
- highline
20
- net-scp (>= 1.0.0)
21
- net-sftp (>= 2.0.0)
22
- net-ssh (>= 2.0.14)
23
- net-ssh-gateway (>= 1.1.0)
24
- diff-lcs (1.2.5)
25
- gem-release (0.7.3)
26
- highline (1.6.21)
27
- json (1.8.2)
28
- metaclass (0.0.4)
29
- mime-types (1.25.1)
30
- mini_portile (0.6.2)
31
- mocha (1.1.0)
32
- metaclass (~> 0.0.1)
33
- net-scp (1.2.1)
34
- net-ssh (>= 2.6.5)
35
- net-sftp (2.1.2)
36
- net-ssh (>= 2.6.5)
37
- net-ssh (2.9.2)
38
- net-ssh-gateway (1.2.0)
39
- net-ssh (>= 2.6.5)
40
- nokogiri (1.6.6.2)
41
- mini_portile (~> 0.6.0)
42
- rake (10.3.2)
43
- rspec (3.0.0)
44
- rspec-core (~> 3.0.0)
45
- rspec-expectations (~> 3.0.0)
46
- rspec-mocks (~> 3.0.0)
47
- rspec-core (3.0.0)
48
- rspec-support (~> 3.0.0)
49
- rspec-expectations (3.0.0)
50
- diff-lcs (>= 1.2.0, < 2.0)
51
- rspec-support (~> 3.0.0)
52
- rspec-mocks (3.0.0)
53
- rspec-support (~> 3.0.0)
54
- rspec-support (3.0.0)
55
-
56
- PLATFORMS
57
- ruby
58
-
59
- DEPENDENCIES
60
- awesome_print
61
- capistrano-s3!
62
- gem-release
63
- mocha
64
- rake
65
- rspec