capistrano-middleman 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1191fecc0afe53ccb5d246a73dc13c3ab7e0b68f
4
- data.tar.gz: 7dd7e2daf663dfe122f92ad4b1e4855bc981f0c8
3
+ metadata.gz: f34876824ba2dc393f73ed7f0727847fe3695c4f
4
+ data.tar.gz: b460995cb2c51d550986aca589a6734c59b17ce8
5
5
  SHA512:
6
- metadata.gz: 981a7c5b9f3ac93c6f40a4675583649ef6360f3f1e8fd2785032ff829041126801714f3300461e598a2793372088863194ca9b5bf30559e6c0d876a6c6ef7570
7
- data.tar.gz: 7d4b29b21a82688a891593df61d1216bb08edfd649b92c97d22154dc360c72cf1ce56f68f7a49d252ef7ddd95695af478e35a8fba6487de05e6989eb3eaa0ced
6
+ metadata.gz: 1140b941732728b758890d6cc9614891dc589c19219be2e42196d49e0893a193785d5c2d0181e6d7e6c1f6af16429db0c91162068c5e5981f83195dd092bda38
7
+ data.tar.gz: b4ee9490f710bce07755fa7818b2288b76b0efc1634f044737585768fface396c90dbf04b52e5bf48a28c7597bca121b4db13f6c61250cf664685decfc7e77dd
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format Fuubar
2
+ --order rand
3
+ --color
data/.rubocop.yml ADDED
@@ -0,0 +1,40 @@
1
+ AllCops:
2
+ Exclude:
3
+ - 'tmp/**/*'
4
+ DisplayCopNames: true
5
+
6
+ Metrics/AbcSize:
7
+ Max: 38
8
+
9
+ # Configuration parameters: AllowURI.
10
+ Metrics/LineLength:
11
+ Max: 225
12
+
13
+ # Configuration parameters: CountKeywordArgs.
14
+ Metrics/ParameterLists:
15
+ Max: 6
16
+
17
+ Style/CaseEquality:
18
+ Enabled: false
19
+
20
+ Metrics/BlockNesting:
21
+ Max: 4
22
+
23
+ # Configuration parameters: CountComments.
24
+ Metrics/ClassLength:
25
+ Max: 174
26
+
27
+ Metrics/CyclomaticComplexity:
28
+ Max: 7
29
+
30
+ # Configuration parameters: CountComments.
31
+ Metrics/MethodLength:
32
+ Max: 76
33
+
34
+ Metrics/PerceivedComplexity:
35
+ Max: 8
36
+
37
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
38
+ Style/MethodName:
39
+ Exclude:
40
+ - lib/proxy_pac_rb/environment.rb
data/.simplecov ADDED
@@ -0,0 +1,8 @@
1
+ SimpleCov.start do
2
+ add_filter "/features/"
3
+ add_filter "/spec/"
4
+ add_filter "/tmp"
5
+ add_filter "/vendor"
6
+
7
+ add_group "lib", "lib"
8
+ end
data/.travis.yml ADDED
@@ -0,0 +1,8 @@
1
+ env:
2
+ - CI=1
3
+ language: ruby
4
+ bundler_args: --without development debug profile
5
+ rvm:
6
+ - 2.1.5
7
+ - 2.2.2
8
+ script: script/test
data/.yardopts ADDED
@@ -0,0 +1,5 @@
1
+ -o doc/yard
2
+ --verbose
3
+ -
4
+ LICENSE.md
5
+ README.md
data/Gemfile CHANGED
@@ -3,4 +3,46 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in capistrano-middleman.gemspec
4
4
  gemspec
5
5
 
6
- gem 'rake', '~>10.0'
6
+ group :debug do
7
+ gem 'pry'
8
+ gem 'byebug'
9
+
10
+ gem 'pry-doc', require: false
11
+ gem 'pry-stack_explorer', require: false
12
+ # gem 'pry-exception_explorer', require: false
13
+ # gem 'pry-rescue', require: false
14
+ gem 'pry-byebug', require: false
15
+ end
16
+
17
+ group :development, :test do
18
+ gem 'aruba', require: false, git: 'https://github.com/cucumber/aruba'
19
+ gem 'awesome_print', require: 'ap'
20
+ gem 'bundler', '~> 1.3', require: false
21
+ gem 'command_exec', require: false
22
+ gem 'coveralls', require: false
23
+ gem 'cucumber', require: false, git: 'https://github.com/cucumber/cucumber'
24
+ gem 'erubis'
25
+ gem 'fedux_org-stdlib', '~>0.11.16', require: false
26
+ gem 'filegen'
27
+ gem 'foreman', require: false
28
+ gem 'fuubar', require: false
29
+ gem 'github-markup'
30
+ gem 'inch', require: false
31
+ gem 'launchy', require: false
32
+ gem 'license_finder'
33
+ gem 'rack'
34
+ gem 'rake', require: false
35
+ gem 'redcarpet', require: false
36
+ gem 'rubocop', require: false
37
+ gem 'simplecov', require: false
38
+ gem 'sinatra', require: 'sinatra/base'
39
+ gem 'tmrb', require: false
40
+ gem 'travis-lint', require: false
41
+ gem 'versionomy', require: false
42
+ gem 'yard', require: false
43
+ gem 'rspec', require: false
44
+ end
45
+
46
+ group :profile do
47
+ gem 'ruby-prof'
48
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,326 @@
1
+ GIT
2
+ remote: https://github.com/cucumber/aruba
3
+ revision: 9e9b45d7d0d4ec93df0d81b0ba37b6efe03021d5
4
+ specs:
5
+ aruba (0.6.2)
6
+ childprocess (>= 0.3.6)
7
+ cucumber (>= 1.1.1)
8
+ rspec-expectations (>= 2.7.0)
9
+
10
+ GIT
11
+ remote: https://github.com/cucumber/cucumber
12
+ revision: db7c5c95c154e4055a753ac7319b7d040487be57
13
+ specs:
14
+ cucumber (2.0.0)
15
+ builder (>= 2.1.2)
16
+ cucumber-core (~> 1.1.3)
17
+ diff-lcs (>= 1.1.3)
18
+ gherkin (~> 2.12)
19
+ multi_json (>= 1.7.5, < 2.0)
20
+ multi_test (>= 0.1.2)
21
+
22
+ PATH
23
+ remote: .
24
+ specs:
25
+ capistrano-middleman (0.0.1)
26
+ capistrano (~> 3)
27
+ middleman (~> 3.3)
28
+ rubyzip (~> 1.1.7)
29
+
30
+ GEM
31
+ remote: https://rubygems.org/
32
+ specs:
33
+ activesupport (4.1.9)
34
+ i18n (~> 0.6, >= 0.6.9)
35
+ json (~> 1.7, >= 1.7.7)
36
+ minitest (~> 5.1)
37
+ thread_safe (~> 0.1)
38
+ tzinfo (~> 1.1)
39
+ addressable (2.3.8)
40
+ ast (2.0.0)
41
+ astrolabe (1.3.0)
42
+ parser (>= 2.2.0.pre.3, < 3.0)
43
+ awesome_print (1.6.1)
44
+ binding_of_caller (0.7.2)
45
+ debug_inspector (>= 0.0.1)
46
+ blockenspiel (0.4.5)
47
+ builder (3.2.2)
48
+ byebug (4.0.5)
49
+ columnize (= 0.9.0)
50
+ capistrano (3.4.0)
51
+ i18n
52
+ rake (>= 10.0.0)
53
+ sshkit (~> 1.3)
54
+ celluloid (0.16.0)
55
+ timers (~> 4.0.0)
56
+ childprocess (0.5.6)
57
+ ffi (~> 1.0, >= 1.0.11)
58
+ chunky_png (1.3.4)
59
+ coderay (1.1.0)
60
+ coffee-script (2.4.1)
61
+ coffee-script-source
62
+ execjs
63
+ coffee-script-source (1.9.1.1)
64
+ colorize (0.7.7)
65
+ columnize (0.9.0)
66
+ command_exec (0.2.0)
67
+ activesupport
68
+ smart_colored
69
+ xml-simple
70
+ compass (1.0.3)
71
+ chunky_png (~> 1.2)
72
+ compass-core (~> 1.0.2)
73
+ compass-import-once (~> 1.0.5)
74
+ rb-fsevent (>= 0.9.3)
75
+ rb-inotify (>= 0.9)
76
+ sass (>= 3.3.13, < 3.5)
77
+ compass-core (1.0.3)
78
+ multi_json (~> 1.0)
79
+ sass (>= 3.3.0, < 3.5)
80
+ compass-import-once (1.0.5)
81
+ sass (>= 3.2, < 3.5)
82
+ coveralls (0.8.1)
83
+ json (~> 1.8)
84
+ rest-client (>= 1.6.8, < 2)
85
+ simplecov (~> 0.10.0)
86
+ term-ansicolor (~> 1.3)
87
+ thor (~> 0.19.1)
88
+ cucumber-core (1.1.3)
89
+ gherkin (~> 2.12.0)
90
+ debug_inspector (0.0.2)
91
+ diff-lcs (1.2.5)
92
+ docile (1.1.5)
93
+ domain_name (0.5.24)
94
+ unf (>= 0.0.5, < 1.0.0)
95
+ erubis (2.7.0)
96
+ execjs (2.5.2)
97
+ fedux_org-stdlib (0.11.16)
98
+ activesupport
99
+ ffi (1.9.6)
100
+ filegen (0.4.3)
101
+ activesupport
102
+ foreman (0.78.0)
103
+ thor (~> 0.19.1)
104
+ fuubar (2.0.0)
105
+ rspec (~> 3.0)
106
+ ruby-progressbar (~> 1.4)
107
+ gherkin (2.12.2)
108
+ multi_json (~> 1.3)
109
+ github-markup (1.3.3)
110
+ haml (4.0.6)
111
+ tilt
112
+ hike (1.2.3)
113
+ hitimes (1.2.2)
114
+ hooks (0.4.0)
115
+ uber (~> 0.0.4)
116
+ http-cookie (1.0.2)
117
+ domain_name (~> 0.5)
118
+ httparty (0.13.3)
119
+ json (~> 1.8)
120
+ multi_xml (>= 0.5.2)
121
+ i18n (0.7.0)
122
+ inch (0.6.1)
123
+ pry
124
+ sparkr (>= 0.2.0)
125
+ term-ansicolor
126
+ yard (~> 0.8.7.5)
127
+ json (1.8.2)
128
+ kramdown (1.6.0)
129
+ launchy (2.4.3)
130
+ addressable (~> 2.3)
131
+ license_finder (2.0.4)
132
+ bundler
133
+ httparty
134
+ thor
135
+ xml-simple
136
+ listen (2.10.0)
137
+ celluloid (~> 0.16.0)
138
+ rb-fsevent (>= 0.9.3)
139
+ rb-inotify (>= 0.9)
140
+ method_source (0.8.2)
141
+ middleman (3.3.11)
142
+ coffee-script (~> 2.2)
143
+ compass (>= 1.0.0, < 2.0.0)
144
+ compass-import-once (= 1.0.5)
145
+ execjs (~> 2.0)
146
+ haml (>= 4.0.5)
147
+ kramdown (~> 1.2)
148
+ middleman-core (= 3.3.11)
149
+ middleman-sprockets (>= 3.1.2)
150
+ sass (>= 3.4.0, < 4.0)
151
+ uglifier (~> 2.5)
152
+ middleman-core (3.3.11)
153
+ activesupport (~> 4.1.0)
154
+ bundler (~> 1.1)
155
+ erubis
156
+ hooks (~> 0.3)
157
+ i18n (~> 0.7.0)
158
+ listen (>= 2.7.9, < 3.0)
159
+ padrino-helpers (~> 0.12.3)
160
+ rack (>= 1.4.5, < 2.0)
161
+ rack-test (~> 0.6.2)
162
+ thor (>= 0.15.2, < 2.0)
163
+ tilt (~> 1.4.1, < 2.0)
164
+ middleman-sprockets (3.4.2)
165
+ middleman-core (>= 3.3)
166
+ sprockets (~> 2.12.1)
167
+ sprockets-helpers (~> 1.1.0)
168
+ sprockets-sass (~> 1.3.0)
169
+ mime-types (2.5)
170
+ minitest (5.5.1)
171
+ multi_json (1.10.1)
172
+ multi_test (0.1.2)
173
+ multi_xml (0.5.5)
174
+ net-scp (1.2.1)
175
+ net-ssh (>= 2.6.5)
176
+ net-ssh (2.9.2)
177
+ netrc (0.10.3)
178
+ padrino-helpers (0.12.5)
179
+ i18n (~> 0.6, >= 0.6.7)
180
+ padrino-support (= 0.12.5)
181
+ tilt (~> 1.4.1)
182
+ padrino-support (0.12.5)
183
+ activesupport (>= 3.1)
184
+ parser (2.2.2.1)
185
+ ast (>= 1.1, < 3.0)
186
+ powerpack (0.1.0)
187
+ pry (0.10.1)
188
+ coderay (~> 1.1.0)
189
+ method_source (~> 0.8.1)
190
+ slop (~> 3.4)
191
+ pry-byebug (3.1.0)
192
+ byebug (~> 4.0)
193
+ pry (~> 0.10)
194
+ pry-doc (0.6.0)
195
+ pry (~> 0.9)
196
+ yard (~> 0.8)
197
+ pry-stack_explorer (0.4.9.2)
198
+ binding_of_caller (>= 0.7)
199
+ pry (>= 0.9.11)
200
+ rack (1.6.0)
201
+ rack-protection (1.5.3)
202
+ rack
203
+ rack-test (0.6.3)
204
+ rack (>= 1.0)
205
+ rainbow (2.0.0)
206
+ rake (10.4.2)
207
+ rb-fsevent (0.9.4)
208
+ rb-inotify (0.9.5)
209
+ ffi (>= 0.5.0)
210
+ redcarpet (3.2.3)
211
+ rest-client (1.8.0)
212
+ http-cookie (>= 1.0.2, < 2.0)
213
+ mime-types (>= 1.16, < 3.0)
214
+ netrc (~> 0.7)
215
+ rspec (3.2.0)
216
+ rspec-core (~> 3.2.0)
217
+ rspec-expectations (~> 3.2.0)
218
+ rspec-mocks (~> 3.2.0)
219
+ rspec-core (3.2.3)
220
+ rspec-support (~> 3.2.0)
221
+ rspec-expectations (3.2.1)
222
+ diff-lcs (>= 1.2.0, < 2.0)
223
+ rspec-support (~> 3.2.0)
224
+ rspec-mocks (3.2.1)
225
+ diff-lcs (>= 1.2.0, < 2.0)
226
+ rspec-support (~> 3.2.0)
227
+ rspec-support (3.2.2)
228
+ rubocop (0.30.1)
229
+ astrolabe (~> 1.3)
230
+ parser (>= 2.2.2.1, < 3.0)
231
+ powerpack (~> 0.1)
232
+ rainbow (>= 1.99.1, < 3.0)
233
+ ruby-progressbar (~> 1.4)
234
+ ruby-prof (0.15.8)
235
+ ruby-progressbar (1.7.5)
236
+ rubyzip (1.1.7)
237
+ sass (3.4.13)
238
+ simplecov (0.10.0)
239
+ docile (~> 1.1.0)
240
+ json (~> 1.8)
241
+ simplecov-html (~> 0.10.0)
242
+ simplecov-html (0.10.0)
243
+ sinatra (1.4.6)
244
+ rack (~> 1.4)
245
+ rack-protection (~> 1.4)
246
+ tilt (>= 1.3, < 3)
247
+ slop (3.6.0)
248
+ smart_colored (1.1.1)
249
+ sparkr (0.4.1)
250
+ sprockets (2.12.3)
251
+ hike (~> 1.2)
252
+ multi_json (~> 1.0)
253
+ rack (~> 1.0)
254
+ tilt (~> 1.1, != 1.3.0)
255
+ sprockets-helpers (1.1.0)
256
+ sprockets (~> 2.0)
257
+ sprockets-sass (1.3.1)
258
+ sprockets (~> 2.0)
259
+ tilt (~> 1.1)
260
+ sshkit (1.7.1)
261
+ colorize (>= 0.7.0)
262
+ net-scp (>= 1.1.2)
263
+ net-ssh (>= 2.8.0)
264
+ term-ansicolor (1.3.0)
265
+ tins (~> 1.0)
266
+ thor (0.19.1)
267
+ thread_safe (0.3.4)
268
+ tilt (1.4.1)
269
+ timers (4.0.1)
270
+ hitimes
271
+ tins (1.5.1)
272
+ tmrb (1.2.7)
273
+ thor
274
+ travis-lint (2.0.0)
275
+ json
276
+ tzinfo (1.2.2)
277
+ thread_safe (~> 0.1)
278
+ uber (0.0.13)
279
+ uglifier (2.7.1)
280
+ execjs (>= 0.3.0)
281
+ json (>= 1.8.0)
282
+ unf (0.1.4)
283
+ unf_ext
284
+ unf_ext (0.0.7.1)
285
+ versionomy (0.4.4)
286
+ blockenspiel (>= 0.4.5)
287
+ xml-simple (1.1.5)
288
+ yard (0.8.7.6)
289
+
290
+ PLATFORMS
291
+ ruby
292
+
293
+ DEPENDENCIES
294
+ aruba!
295
+ awesome_print
296
+ bundler (~> 1.3)
297
+ byebug
298
+ capistrano-middleman!
299
+ command_exec
300
+ coveralls
301
+ cucumber!
302
+ erubis
303
+ fedux_org-stdlib (~> 0.11.16)
304
+ filegen
305
+ foreman
306
+ fuubar
307
+ github-markup
308
+ inch
309
+ launchy
310
+ license_finder
311
+ pry
312
+ pry-byebug
313
+ pry-doc
314
+ pry-stack_explorer
315
+ rack
316
+ rake
317
+ redcarpet
318
+ rspec
319
+ rubocop
320
+ ruby-prof
321
+ simplecov
322
+ sinatra
323
+ tmrb
324
+ travis-lint
325
+ versionomy
326
+ yard
data/README.md CHANGED
@@ -1,13 +1,17 @@
1
- # Capistrano::Middleman
1
+ # capistrano-middleman
2
2
 
3
- TODO: Write a gem description
3
+ [![Gem Version](https://badge.fury.io/rb/capistrano-middleman.svg)](http://badge.fury.io/rb/capistrano-middleman)
4
+
5
+ Deploy middleman app with the help of [`capistrano`](https://github.com/capistrano/capistrano) (Vers. 3).
6
+ [`capistrano-scm-copy`](https://github.com/wercker/capistrano-scm-copy) was
7
+ quite helpful as template for this gem.
4
8
 
5
9
  ## Installation
6
10
 
7
11
  Add this line to your application's Gemfile:
8
12
 
9
13
  ```ruby
10
- gem 'capistrano-middleman'
14
+ gem 'capistrano-middleman', require: false
11
15
  ```
12
16
 
13
17
  And then execute:
@@ -20,7 +24,47 @@ Or install it yourself as:
20
24
 
21
25
  ## Usage
22
26
 
23
- TODO: Write usage instructions here
27
+
28
+ ### Activate plugin
29
+
30
+ You just need to change `:scm` to `:middleman` in your `deploy.rb`.
31
+
32
+ ```
33
+ set :scm, :middleman
34
+ ```
35
+
36
+ ### Configuration
37
+
38
+ You can configure `middleman-presentation` by using the following options:
39
+
40
+ ```ruby
41
+ # Local name of archive build from middleman-build-directory
42
+ set :archive_name, 'archive.zip'
43
+
44
+ # Name of build_directory
45
+ set :build_dir, 'build'
46
+
47
+ # Name of source directory
48
+ set :source_dir, 'source'
49
+
50
+ # Keep permissions from filesystem
51
+ set :keep_filesystem_permissions, false
52
+
53
+ # Overwrite permissions of directories
54
+ set :directory_permissions, 2775
55
+
56
+ # Overwrite permissions of files
57
+ set :file_permissions, 0664
58
+ ```
59
+
60
+ ### Required Software
61
+
62
+ Machine running [`capistrano`](https://github.com/capistrano/capistrano): [capistrano 3](https://github.com/capistrano/capistrano)
63
+
64
+ Servers:
65
+
66
+ * mktemp
67
+ * unzip
24
68
 
25
69
  ## Contributing
26
70
 
data/Rakefile CHANGED
@@ -1,2 +1,50 @@
1
- require 'bundler/gem_tasks'
1
+ #!/usr/bin/env rake
2
2
 
3
+ # require 'bundler'
4
+ # Bundler.require :default, :test, :development
5
+
6
+ require 'filegen'
7
+ require 'fedux_org_stdlib/rake_tasks'
8
+
9
+ require 'coveralls/rake/task'
10
+ Coveralls::RakeTask.new
11
+
12
+ desc 'Default task => run test suite'
13
+ task default: :test
14
+
15
+ desc 'Run test suite'
16
+ task :test do
17
+ Rake::Task['test:before'].execute
18
+
19
+ begin
20
+ %w(test:rubocop test:rspec test:cucumber test:after).each { |t| Rake::Task[t].execute }
21
+ ensure
22
+ Rake::Task['test:after'].execute
23
+ end
24
+ end
25
+
26
+ namespace :test do
27
+ desc 'Test with coveralls'
28
+ task coveralls: %w(test coveralls:push)
29
+
30
+ require 'rubocop/rake_task'
31
+ RuboCop::RakeTask.new
32
+
33
+ desc 'Run rspec'
34
+ task :rspec do
35
+ sh 'bundle exec rspec'
36
+ end
37
+
38
+ desc 'Run cucumber'
39
+ task :cucumber do
40
+ # sh 'bundle exec cucumber -p all'
41
+ end
42
+
43
+ desc 'Setup test environment'
44
+ task :before do
45
+ end
46
+
47
+ desc 'Teardown test environment'
48
+ task :after do
49
+ end
50
+ end
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.version = Capistrano::Middleman::VERSION
9
9
  spec.authors = ['Max Meyer']
10
10
  spec.email = ['dev@fedux.org']
11
- spec.summary = %q{Middleman deploy strategy for capistrano}
11
+ spec.summary = 'Middleman deploy strategy for capistrano'
12
12
  spec.homepage = 'https://github.com/maxmeyer/capistrano-middleman'
13
13
  spec.license = 'MIT'
14
14
 
@@ -21,4 +21,5 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_runtime_dependency 'middleman', '~> 3.3'
23
23
  spec.add_runtime_dependency 'capistrano', '~> 3'
24
+ spec.add_runtime_dependency 'rubyzip', '~>1.1.7'
24
25
  end
data/cucumber.yml ADDED
@@ -0,0 +1,2 @@
1
+ default: --tags @wip:3 --tags ~@broken --tags ~@broken-external
2
+ all: --tags ~@wip --tags ~@broken --tags ~@broken-external
@@ -0,0 +1,37 @@
1
+ module Capistrano
2
+ module Middleman
3
+ module Utils
4
+ def zip(
5
+ source_directory,
6
+ destination_file,
7
+ prefix: nil,
8
+ working_directory: Dir.getwd,
9
+ exclude_patterns: [],
10
+ keep_filesystem_permissions: false,
11
+ file_permissions: 0664,
12
+ directory_permissions: 2775
13
+ )
14
+ list = Rake::FileList.new(File.join(source_directory, '**', '*'))
15
+ list.exclude { |f| !File.file? f }
16
+ exclude_patterns.each { |e| list.exclude e }
17
+
18
+ Zip::File.open(destination_file, Zip::File::CREATE) do |z|
19
+ list.each do |filename|
20
+ paths = []
21
+ paths << Pathname.new(prefix) unless prefix.nil? || prefix.empty?
22
+ paths << Pathname.new(filename).relative_path_from(Pathname.new(working_directory))
23
+
24
+ z.add(File.join(*paths), File.expand_path(filename))
25
+
26
+ next if keep_filesystem_permissions
27
+
28
+ z.file.chmod(file_permissions , File.join(*paths)) if z.file.file? File.join(*paths)
29
+ z.file.chmod(directory_permissions, File.join(*paths)) if z.file.directory? File.join(*paths)
30
+ end
31
+ end
32
+ end
33
+
34
+ module_function :zip
35
+ end
36
+ end
37
+ end
@@ -1,5 +1,8 @@
1
+ # encoding: utf-8
2
+ # Capistrano
1
3
  module Capistrano
4
+ # Middleman
2
5
  module Middleman
3
- VERSION = "0.0.1"
6
+ VERSION = '0.1.0'
4
7
  end
5
8
  end
@@ -1 +1,6 @@
1
+ require 'zip'
2
+ require 'zip/filesystem'
3
+ require 'pathname'
4
+ require 'capistrano/middleman/utils'
5
+
1
6
  load File.expand_path('../tasks/middleman.rake', __FILE__)
@@ -1,54 +1,65 @@
1
1
  namespace :middleman do
2
2
  middleman_options = Array(fetch(:middleman_options, %w(--verbose)))
3
3
 
4
- archive_name = fetch :archive_name, 'archive.tar.gz'
5
- build_dir = fetch :build_dir, 'build'
6
- source_dir = fetch :source_dir, 'source'
7
- exclude_dir = Array(fetch(:exclude_dir))
8
- exclude_args = exclude_dir.map { |dir| "--exclude '#{dir}'"}
4
+ archive_name = fetch :archive_name, 'archive.zip'
5
+ build_dir = fetch :build_dir, 'build'
6
+ source_dir = fetch :source_dir, 'source'
7
+ keep_filesystem_permissions = fetch :keep_filesystem_permissions, false
8
+ directory_permissions = fetch :directory_permissions, 2775
9
+ file_permissions = fetch :file_permissions, 0664
9
10
 
10
- tar_roles = fetch(:tar_roles, :all)
11
+ exclude_patterns = Array(fetch(:exclude_patterns))
11
12
 
13
+ tar_roles = fetch(:tar_roles, :all)
12
14
  desc "Archive files to #{archive_name}"
13
15
  file archive_name => source_dir do |t|
14
16
  cmd = %w(middleman build)
15
17
  cmd.concat middleman_options
16
-
17
18
  sh cmd.join(' ')
18
19
 
19
- files = FileList.new(File.join(build_dir, '*')).sub(%r{#{build_dir}/?}, '')
20
-
21
- cmd = %w(tar -cvzf)
22
- cmd << t.name
23
- cmd << "-C #{build_dir}"
24
- cmd.concat exclude_args
25
- cmd.concat files
20
+ Capistrano::Middleman::Utils.zip(
21
+ build_dir,
22
+ t.name,
23
+ working_directory: build_dir,
24
+ exclude_patterns: exclude_patterns,
25
+ keep_filesystem_permissions: keep_filesystem_permissions,
26
+ directory_permissions: directory_permissions,
27
+ file_permissions: file_permissions
28
+ )
29
+ end
26
30
 
27
- sh cmd.join(' ')
31
+ desc "Build #{archive_name} on localhost"
32
+ task build: archive_name do
33
+ run_locally do
34
+ info "Archive \"#{archive_name}\" created."
35
+ end
28
36
  end
29
37
 
30
38
  desc "Deploy #{archive_name} to release_path"
31
39
  task create_release: archive_name do |t|
32
- tarball = t.prerequisites.first
40
+ archive_file = t.prerequisites.first
33
41
 
34
42
  on release_roles tar_roles do |host|
35
43
  # Make sure the release directory exists
36
- puts "==> release_path: #{release_path} is created on #{tar_roles} roles <=="
37
- execute :install, "-d -m 755", release_path
44
+ info "==> release_path: #{release_path} is created on #{tar_roles} roles for host #{host} <=="
45
+ execute :install, "-d -m #{directory_permissions}", release_path
38
46
 
39
47
  # Create a temporary file on the server
40
48
  tmp_file = capture('mktemp')
41
49
 
42
50
  # Upload the archive, extract it and finally remove the tmp_file
43
- upload!(tarball, tmp_file)
51
+ upload!(archive_file, tmp_file)
52
+
53
+ umask = capture('umask')
54
+ debug "umask on remote system #{host} is #{umask}"
44
55
 
45
- execute :tar, '-xzf', tmp_file, '-C', release_path
56
+ execute :unzip, tmp_file, '-d', release_path
46
57
  execute :rm, '-f', tmp_file
47
58
  end
48
59
  end
49
60
 
50
61
  desc 'Cleaning up deploy'
51
- task :clean do |t|
62
+ task :clean do |_t|
52
63
  FileUtils.rm_rf build_dir
53
64
  FileUtils.rm_rf archive_name
54
65
  end
data/script/bootstrap ADDED
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+
3
+ echo "Bootstrapping development environment for application.." >&2
4
+
5
+ gem install bundler && bundle install
data/script/test ADDED
@@ -0,0 +1,3 @@
1
+ #!/bin/sh
2
+
3
+ bundle exec rake test:coveralls
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-middleman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max Meyer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-24 00:00:00.000000000 Z
11
+ date: 2015-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubyzip
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.1.7
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.1.7
55
69
  description:
56
70
  email:
57
71
  - dev@fedux.org
@@ -60,15 +74,25 @@ extensions: []
60
74
  extra_rdoc_files: []
61
75
  files:
62
76
  - ".gitignore"
77
+ - ".rspec"
78
+ - ".rubocop.yml"
79
+ - ".simplecov"
80
+ - ".travis.yml"
81
+ - ".yardopts"
63
82
  - Gemfile
83
+ - Gemfile.lock
64
84
  - LICENSE.txt
65
85
  - README.md
66
86
  - Rakefile
67
87
  - capistrano-middleman.gemspec
88
+ - cucumber.yml
68
89
  - lib/capistrano-middleman.rb
69
90
  - lib/capistrano/middleman.rb
91
+ - lib/capistrano/middleman/utils.rb
70
92
  - lib/capistrano/middleman/version.rb
71
93
  - lib/capistrano/tasks/middleman.rake
94
+ - script/bootstrap
95
+ - script/test
72
96
  homepage: https://github.com/maxmeyer/capistrano-middleman
73
97
  licenses:
74
98
  - MIT