octopress-deploy 1.0.4 → 1.0.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: d75396b3d9c08fa3d3ca51c034f9eeba5eb51342
4
- data.tar.gz: d8b79775a8f2371f956cbea7d0599a29c89824b5
3
+ metadata.gz: 5b40f670b3da0ca63247f292839e1f3ac4078c12
4
+ data.tar.gz: 2dad3bffc5e0d5a73ebe993d8918c2d63d04fb2f
5
5
  SHA512:
6
- metadata.gz: 17cf33beeb6801c573fd3c2416ca26f6eca4ee18dddbf358c69b99ab2097f2a4b1e0ffaecad4adb1ac9552d23a084d5de2cfadb15c64a5716af21514fd404aa0
7
- data.tar.gz: 8e3f62f866bd690c4f17aea8b849386ad42dab791faf7683746017bcb19d15e09c0072459fce5ff5e514ede4d52039661bc3d1f21b71ba889dd7d4f9e7b14af3
6
+ metadata.gz: ea4356aae147e4a0f3de99ca98235b729fd48fc19e53fccecd2896b38e2f86b1c8e91c3652861ebadd52f03b5eee4886540a281352388b8274192bbb5a4cf3f1
7
+ data.tar.gz: 2c91be9d8efeea20adff8b408fb578394abbcd439315fcaa805d04a95180d77620ceece1ab6d290766908428be0e3ac21c11baa1737b90cf7889fdcc8109efe4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ### 1.0.5 - 2015-02-04
4
+
5
+ - Fixed issue where an S3 pull wouldn't create some directories.
6
+ - On S3 deploying, verbose now defaults to false.
7
+
3
8
  ### 1.0.4 - 2015-01-17
4
9
 
5
10
  - Improved help messaging on `deploy init git`.
data/README.md CHANGED
@@ -86,7 +86,7 @@ account access information.
86
86
  | `access_key_id` | AWS access key | |
87
87
  | `secret_access_key` | AWS secret key | |
88
88
  | `remote_path` | Directory files should be synced to. | / |
89
- | `verbose` | [optional] Display all file actions during deploy. | true |
89
+ | `verbose` | [optional] Display all file actions during deploy. | false |
90
90
  | `region` | [optional] Region for your AWS bucket | us-east-1 |
91
91
  | `delete` | Delete files in `remote_path` not found in `site_dir` | false |
92
92
  | `headers` | Set headers for matched files | [] |
@@ -74,7 +74,7 @@ module Octopress
74
74
  c.option 'secret_access_key', '-s', '--secret KEY', 'Secret access key'
75
75
  c.option 'region', '-r', '--region REGION', 'AWS region (default: us-east-1)'
76
76
  c.option 'remote_path', '-d', '--dir DIR', 'Deploy site into a subdirectory.'
77
- c.option 'verbose', '-v', '--verbose', 'Log verbose output when deploying (default: true)'
77
+ c.option 'verbose', '-v', '--verbose', 'Log verbose output when deploying'
78
78
  c.option 'delete', '--delete', 'Sync file deletion'
79
79
  add_common_init_options(c)
80
80
 
@@ -9,7 +9,7 @@ module Octopress
9
9
  begin
10
10
  require 'aws-sdk'
11
11
  rescue LoadError
12
- abort "Deploying to S3 requires aws-sdk. Install with `gem install aws-sdk`."
12
+ abort "Deploying to S3 requires the aws-sdk gem. Install with `gem install aws-sdk`."
13
13
  end
14
14
  @options = options
15
15
  @local = options[:site_dir] || '_site'
@@ -18,7 +18,7 @@ module Octopress
18
18
  @secret_key = options[:secret_access_key] || ENV['AWS_SECRET_ACCESS_KEY']
19
19
  @region = options[:region] || ENV['AWS_DEFAULT_REGION'] || 'us-east-1'
20
20
  @remote_path = (options[:remote_path] || '/').sub(/^\//,'')
21
- @verbose = options[:verbose] || true
21
+ @verbose = options[:verbose]
22
22
  @delete = options[:delete]
23
23
  @headers = options[:headers] || []
24
24
  @remote_path = @remote_path.sub(/^\//,'') # remove leading slash
@@ -44,12 +44,18 @@ module Octopress
44
44
  if !@bucket.exists?
45
45
  abort "Bucket not found: '#{@bucket_name}'. Check your configuration or create a bucket using: `octopress deploy add-bucket`"
46
46
  else
47
- puts "Syncing #{@bucket_name} files to #{@pull_dir} on S3."
47
+ puts "Syncing from S3 bucket: '#{@bucket_name}' to #{@pull_dir}."
48
48
  @bucket.objects.each do |object|
49
49
  path = File.join(@pull_dir, object.key)
50
- dir = File.dirname(path)
51
- FileUtils.mkdir_p(dir) unless Dir.exist?(dir)
52
- File.open(path, 'w') { |f| f.write(object.read) }
50
+
51
+ # Path is a directory, not a file
52
+ if path =~ /\/$/
53
+ FileUtils.mkdir_p(path) unless File.directory?(path)
54
+ else
55
+ dir = File.dirname(path)
56
+ FileUtils.mkdir_p(dir) unless File.directory?(dir)
57
+ File.open(path, 'w') { |f| f.write(object.read) }
58
+ end
53
59
  end
54
60
  end
55
61
  end
@@ -81,7 +87,10 @@ module Octopress
81
87
  end
82
88
 
83
89
  def get_file_with_metadata(file, s3_filename)
84
- file_with_options = {:file => file }
90
+ file_with_options = {
91
+ :file => file,
92
+ :acl => :public_read
93
+ }
85
94
 
86
95
  @headers.each do |conf|
87
96
  if conf.has_key? 'filename' and s3_filename.match(conf['filename'])
@@ -220,9 +229,10 @@ module Octopress
220
229
  #{"secret_access_key: #{options[:secret_access_key]}".ljust(40)} # Keep it safe; keep it secret. Keep this file in your .gitignore.
221
230
  #{"remote_path: #{options[:remote_path] || '/'}".ljust(40)} # relative path on bucket where files should be copied.
222
231
  #{"region: #{options[:remote_path] || 'us-east-1'}".ljust(40)} # Region where your bucket is located.
232
+ #{"verbose: true".ljust(40)} # Print out all file operations.
223
233
 
224
234
  #{"# delete: #{options[:delete] || 'true'}".ljust(40)} # Remove files from destination which do not match source files.
225
- #{"# verbose: #{options[:verbose] || 'true'}".ljust(40)} # Print out all file operations.
235
+ #{"# verbose: #{options[:verbose] || 'false'}".ljust(40)} # Print out all file operations.
226
236
  CONFIG
227
237
  end
228
238
 
@@ -1,5 +1,5 @@
1
1
  module Octopress
2
2
  module Deploy
3
- VERSION = "1.0.4"
3
+ VERSION = "1.0.5"
4
4
  end
5
5
  end
@@ -117,7 +117,7 @@ module Octopress
117
117
  def self.get_config
118
118
  <<-FILE
119
119
  #{"method: #{@options[:method]}".ljust(40)} # How do you want to deploy? git, rsync or s3.
120
- #{"site_dir: #{@options[:site_dir]}".ljust(40)} # Location of your your static site files.
120
+ #{"site_dir: #{@options[:site_dir]}".ljust(40)} # Location of your static site files.
121
121
 
122
122
  #{get_deployment_method(@options).default_config(@options)}
123
123
  FILE
@@ -5,7 +5,7 @@
5
5
  reset:
6
6
  - cleanup
7
7
  - cp -r source/ _site
8
- - ruby garbage.rb
8
+ - ruby _garbage.rb
9
9
  -
10
10
  title: Test local Rsync
11
11
  before:
@@ -1,5 +1,5 @@
1
1
  method: git # How do you want to deploy? git, rsync or s3.
2
- site_dir: _site # Location of your your static site files.
2
+ site_dir: _site # Location of your static site files.
3
3
 
4
4
  git_url: /Users/imathis/workspace/octodev/deploy/test/local-git # remote repository url, e.g. git@github.com:username/repo_name
5
5
 
@@ -1,5 +1,5 @@
1
1
  method: rsync # How do you want to deploy? git, rsync or s3.
2
- site_dir: _site # Location of your your static site files.
2
+ site_dir: _site # Location of your static site files.
3
3
 
4
4
  user: # The user for your host, e.g. user@host.com
5
5
  remote_path: local-rsync # Destination directory
@@ -0,0 +1 @@
1
+ This is a test, ignore the follwing garbage:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: octopress-deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandon Mathis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-17 00:00:00.000000000 Z
11
+ date: 2015-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorator
@@ -115,7 +115,6 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
- - ".clash.yml"
119
118
  - ".gitignore"
120
119
  - CHANGELOG.md
121
120
  - Gemfile
@@ -130,15 +129,13 @@ files:
130
129
  - lib/octopress-deploy/s3.rb
131
130
  - lib/octopress-deploy/version.rb
132
131
  - octopress-deploy.gemspec
133
- - test/.gitignore
134
- - test/Gemfile
132
+ - test/_clash.yml
135
133
  - test/_git_deploy_local.yml
136
134
  - test/_rsync_deploy_local.yml
137
135
  - test/garbage.rb
138
136
  - test/source/.hidden
139
137
  - test/source/dir/file
140
- - test/source/test_file
141
- - test/test.rb
138
+ - test/source/index.html
142
139
  homepage: https://github.com/octopress/deploy
143
140
  licenses:
144
141
  - MIT
@@ -164,12 +161,10 @@ signing_key:
164
161
  specification_version: 4
165
162
  summary: Easily deploy any Jekyll or Octopress site using S3, Git, or Rsync.
166
163
  test_files:
167
- - test/.gitignore
168
- - test/Gemfile
164
+ - test/_clash.yml
169
165
  - test/_git_deploy_local.yml
170
166
  - test/_rsync_deploy_local.yml
171
167
  - test/garbage.rb
172
168
  - test/source/.hidden
173
169
  - test/source/dir/file
174
- - test/source/test_file
175
- - test/test.rb
170
+ - test/source/index.html
data/test/.gitignore DELETED
@@ -1 +0,0 @@
1
- _s3_deploy.yml
data/test/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec path: "../"
4
- gem "aws-sdk"
@@ -1 +0,0 @@
1
- Ignore the follwing garbage:
data/test/test.rb DELETED
@@ -1,163 +0,0 @@
1
- require File.expand_path("../../lib/octopress-deploy.rb", __FILE__)
2
- require 'fileutils'
3
- require 'find'
4
- require 'pry-byebug'
5
-
6
- @has_failed = false
7
- @failures = {}
8
-
9
- def setup_tests
10
- `rm -rf build` # clean up from previous tests
11
- generate_site
12
- end
13
-
14
- def generate_site
15
- system "cp -r source/ build"
16
- Find.find('build').to_a.each do |f|
17
- system("echo '#{garbage}' >> #{f}") unless File.directory?(f)
18
- end
19
- end
20
-
21
- def pout(str)
22
- print str
23
- $stdout.flush
24
- end
25
-
26
- def garbage
27
- o = [('a'..'z'), ('A'..'Z')].map { |i| i.to_a }.flatten
28
- (0...50).map { o[rand(o.length)] }.join
29
- end
30
-
31
- def diff_dir(dir1, dir2)
32
- dir_files(dir1).each do |f1|
33
- if diff = diff_file(f1, f1.sub(dir1, dir2))
34
- @failures["#{@testing}: #{f1}"] = diff
35
- pout "F".red
36
- @has_failed = true
37
- else
38
- pout ".".green
39
- end
40
- end
41
- end
42
-
43
- def diff_file(file1, file2)
44
- if File.exist?(file2)
45
- diff = `diff #{file1} #{file2}`
46
- if diff.size > 0
47
- diff
48
- else
49
- false
50
- end
51
- else
52
- "File: #{file2}: No such file or directory."
53
- end
54
- end
55
-
56
- def dir_files(dir)
57
- Find.find(dir).to_a.reject!{|f| File.directory?(f) }
58
- end
59
-
60
- def test_remote_git
61
- @testing = 'remote git'
62
- repo = "git@github.com:octopress/deploy"
63
- config = "_git_deploy.yml"
64
-
65
- # Clean up from previous tests
66
- #
67
- `rm -rf .deploy pull-git`
68
-
69
- # Test remote git deployment
70
- #
71
- Octopress::Deploy.init_config(method: 'git', config_file: config, force: true, site_dir: 'build', git_branch: 'test_git_deploy', git_url: repo)
72
- Octopress::Deploy.push(config_file: config)
73
- Octopress::Deploy.pull(dir: 'pull-git', config_file: config)
74
- diff_dir('build', 'pull-git')
75
- end
76
-
77
- def test_local_git
78
- @testing = 'local git'
79
- config = "_git_deploy.yml"
80
-
81
- # Clean up from previous tests
82
- #
83
- `rm -rf .deploy local-git pull-git`
84
- `git init --bare local-git`
85
- repo = "local-git"
86
-
87
- # Test local git deployment
88
- #
89
- Octopress::Deploy.init_config(method: 'git', config_file: config, force: true, site_dir: 'build', git_branch: 'test_git_deploy', git_url: File.expand_path(repo), remote_path: 'site')
90
- Octopress::Deploy.push(config_file: config)
91
- Octopress::Deploy.pull(dir: 'pull-git', config_file: config, git_url: File.expand_path(repo), remote_path: 'site')
92
- diff_dir('build', 'pull-git/site')
93
- end
94
-
95
- def test_remote_rsync
96
- @testing = 'remote rsync'
97
- config = '_rsync_deploy.yml'
98
-
99
- # Clean up from previous tests
100
- `rm -rf local-rsync pull-rsync`
101
-
102
- # Test remote git deployment
103
- #
104
- Octopress::Deploy.init_config(method: 'rsync', config_file: config, site_dir: 'build', force: true, user: 'imathis@imathis.com', remote_path: '~/octopress-deploy/rsync/')
105
- Octopress::Deploy.push(config_file: config)
106
- Octopress::Deploy.pull(dir: 'pull-rsync', config_file: config)
107
- diff_dir('build', 'pull-rsync')
108
-
109
- end
110
-
111
- def test_local_rsync
112
- @testing = 'local rsync'
113
- config = '_rsync_deploy.yml'
114
-
115
- # Clean up from previous tests
116
- `rm -rf local-rsync pull-rsync`
117
-
118
- # Test local git deployment
119
- #
120
- Octopress::Deploy.init_config(method: 'rsync', config_file: config, site_dir: 'build', force: true, remote_path: 'local-rsync')
121
- Octopress::Deploy.push(config_file: config)
122
- Octopress::Deploy.pull(dir: 'pull-rsync', config_file: config, user: false, remote_path: 'local-rsync')
123
- diff_dir('build', 'pull-rsync')
124
- end
125
-
126
- def test_s3
127
- @testing = 's3'
128
- config = "_s3_deploy.yml"
129
- `rm -rf pull-s3`
130
- Octopress::Deploy.push(config_file: config)
131
- Octopress::Deploy.pull(dir: 'pull-s3', config_file: config)
132
- diff_dir('build', 'pull-s3')
133
- end
134
-
135
- def print_test_results
136
- puts "\n"
137
- if @has_failed
138
- @failures.each do |name, diff|
139
- puts "Failure in #{name}:".red
140
- puts "---------"
141
- puts diff
142
- puts "---------"
143
- end
144
- abort
145
- else
146
- puts "All passed!".green
147
- end
148
- end
149
-
150
-
151
- setup_tests
152
-
153
- # local tests
154
- test_local_rsync
155
- test_local_git
156
-
157
- # remote tests
158
- test_remote_git
159
- test_remote_rsync
160
- test_s3
161
-
162
- print_test_results
163
-