capistrano-didi 0.4.4 → 0.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.txt +7 -3
- data/VERSION +1 -1
- data/bin/didify +7 -6
- data/capistrano-didi.gemspec +2 -2
- data/lib/didi/recipes/didi.rb +76 -11
- metadata +36 -97
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA512:
|
3
|
+
data.tar.gz: f6c724b62e44dba0b97f1bb999638f291ef84c971dda7363d9934e93f7089305d24f3ccdde8dd8159b2fdd31ef46fabc462a010d4bf05a077051a6ca9374327c
|
4
|
+
metadata.gz: 6a0013ad8ea262cf9abae39b4ce059089df2dcc3edabd9e8db253c1a99462c9fb33f87504ca3193eeb082676e4efd214728016fce71e41fbe7778ca390737bc1
|
5
|
+
SHA1:
|
6
|
+
data.tar.gz: 349f43606d84dd6bbf717557d9d4fac959dd8dcf
|
7
|
+
metadata.gz: 341d92e5320779d85725ae66d0a10de7164c7143
|
data/CHANGELOG.txt
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## 0.4.5 / 3 July 2013
|
2
|
+
|
3
|
+
* added support for private files directory, using the user_private_files flag.
|
4
|
+
|
1
5
|
## 0.4.4 / 19 Oct 2012
|
2
6
|
|
3
7
|
* fixed issue where wrong previous releases folder was used during cleanup_shared_symlinks
|
@@ -33,8 +37,8 @@
|
|
33
37
|
|
34
38
|
## 0.3.2 / 23 Mar 2012
|
35
39
|
|
36
|
-
* added config option: enable_robots, default to false
|
37
|
-
* added config option: drush_path, on remote server
|
40
|
+
* added config option: enable_robots, default to false
|
41
|
+
* added config option: drush_path, on remote server
|
38
42
|
* added default php settings in settings.php file
|
39
43
|
* put site in maintenance mode during deploy
|
40
44
|
|
@@ -45,4 +49,4 @@
|
|
45
49
|
## 0.3.0 / 24 Nov 2011
|
46
50
|
|
47
51
|
* fix symlinks on rollback
|
48
|
-
* added manage:dbdump_previous task
|
52
|
+
* added manage:dbdump_previous task
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.5
|
data/bin/didify
CHANGED
@@ -38,7 +38,7 @@ end
|
|
38
38
|
files = {
|
39
39
|
"Capfile" => unindent(<<-FILE),
|
40
40
|
require 'railsless-deploy' # gem install railsless-deploy
|
41
|
-
require 'didi/recipes/didi.rb' # gem install capistrano-didi
|
41
|
+
require 'didi/recipes/didi.rb' # gem install capistrano-didi
|
42
42
|
load 'config/deploy'
|
43
43
|
require 'capistrano/ext/multistage' # gem install capistrano
|
44
44
|
FILE
|
@@ -59,6 +59,7 @@ set :db_type, "mysql"
|
|
59
59
|
set :db_name, "database_name"
|
60
60
|
set :db_username, "database_user_name"
|
61
61
|
set :db_password, "database_password"
|
62
|
+
set :db_prefix, "database_prefix"
|
62
63
|
|
63
64
|
set :profile, "minimal"
|
64
65
|
set :domain, "default"
|
@@ -69,9 +70,9 @@ set :adminpass, "drupal_admin_pass"
|
|
69
70
|
set :baseline, "drupal_feature_to_activate_after_fresh_install"
|
70
71
|
',
|
71
72
|
"config/sql/staging.sql" => <<scrub
|
72
|
-
--
|
73
|
+
--
|
73
74
|
-- Scrub important information from a Drupal database.
|
74
|
-
--
|
75
|
+
--
|
75
76
|
|
76
77
|
-- Remove all email addresses.
|
77
78
|
UPDATE users SET mail=CONCAT('user', uid, '@example.com'), init=CONCAT('user', uid, '@example.com') WHERE uid != 0;
|
@@ -102,7 +103,7 @@ UPDATE users SET mail=CONCAT('user', uid, '@example.com'), init=CONCAT('user', u
|
|
102
103
|
-- TRUNCATE custom_customer_lead_data;
|
103
104
|
|
104
105
|
-- USER PASSWORDS
|
105
|
-
-- These statements assume you want to preserve real passwords for developers. Change 'rid=3' to the
|
106
|
+
-- These statements assume you want to preserve real passwords for developers. Change 'rid=3' to the
|
106
107
|
-- developer or test role you want to preserve.
|
107
108
|
|
108
109
|
-- DRUPAL 6
|
@@ -113,9 +114,9 @@ UPDATE users SET mail=CONCAT('user', uid, '@example.com'), init=CONCAT('user', u
|
|
113
114
|
-- UPDATE users SET pass = MD5('supersecret!') WHERE uid = 1;
|
114
115
|
|
115
116
|
-- DRUPAL 7
|
116
|
-
-- Drupal 7 requires sites to generate a hashed password specific to their site. A script in the
|
117
|
+
-- Drupal 7 requires sites to generate a hashed password specific to their site. A script in the
|
117
118
|
-- docroot/scripts directory is provided for doing this. From your docroot run the following:
|
118
|
-
--
|
119
|
+
--
|
119
120
|
-- scripts/password-hash.sh password
|
120
121
|
--
|
121
122
|
-- this will generate a hash for the password "password". In the following statements replace
|
data/capistrano-didi.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "capistrano-didi"
|
8
|
-
s.version = "0.4.
|
8
|
+
s.version = "0.4.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Koen Van Winckel"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2013-07-03"
|
13
13
|
s.description = "didi is a collection of recipes for capistrano that allow drupal to be deployed, tested and used in a CI environment"
|
14
14
|
s.email = "koenvw@gmail.com"
|
15
15
|
s.executables = ["didify", "didi"]
|
data/lib/didi/recipes/didi.rb
CHANGED
@@ -10,6 +10,7 @@ _cset(:db_type) { abort "Please specify the Drupal database type (:db_ty
|
|
10
10
|
_cset(:db_name) { abort "Please specify the Drupal database name (:db_name)." }
|
11
11
|
_cset(:db_username) { abort "Please specify the Drupal database username (:db_username)." }
|
12
12
|
_cset(:db_password) { abort "Please specify the Drupal database password (:db_password)." }
|
13
|
+
_cset(:db_prefix) { abort "Please specify the Drupal database prefix (:db_prefix)." }
|
13
14
|
|
14
15
|
_cset(:profile) { abort "Please specify the Drupal install profile (:profile)." }
|
15
16
|
_cset(:site) { abort "Please specify the Drupal site (:site)." }
|
@@ -37,6 +38,9 @@ set :no_disable, true
|
|
37
38
|
set :local_database, nil
|
38
39
|
set :backup_database, true
|
39
40
|
set :push_dump_enabled, false
|
41
|
+
set :make_install_profile, false
|
42
|
+
set :make_file, ''
|
43
|
+
set :use_private_files, false
|
40
44
|
|
41
45
|
ssh_options[:forward_agent] = true
|
42
46
|
#ssh_options[:verbose] = :debug #FIXME
|
@@ -48,13 +52,15 @@ ssh_options[:forward_agent] = true
|
|
48
52
|
# =========================================================================
|
49
53
|
_cset :settings, 'settings.php'
|
50
54
|
_cset :files, 'files'
|
55
|
+
_cset :private_files, 'private'
|
51
56
|
_cset :dbbackups, 'db_backups'
|
52
57
|
_cset :drush_path, ''
|
53
58
|
|
54
|
-
_cset(:shared_settings)
|
55
|
-
_cset(:shared_files)
|
56
|
-
_cset(:
|
57
|
-
_cset(:
|
59
|
+
_cset(:shared_settings) { domain.to_a.map { |d| File.join(shared_path, d, settings) } }
|
60
|
+
_cset(:shared_files) { domain.to_a.map { |d| File.join(shared_path, d, files) } }
|
61
|
+
_cset(:shared_private_files) { domain.to_a.map { |d| File.join(shared_path, d, private_files) } }
|
62
|
+
_cset(:dbbackups_path) { domain.to_a.map { |d| File.join(deploy_to, dbbackups, d) } }
|
63
|
+
_cset(:drush) { "drush -r #{current_path}" + (domain == 'default' ? '' : " -l #{domain}") } # FIXME: not in use?
|
58
64
|
|
59
65
|
# these variables are still in rails-less deploy gem
|
60
66
|
# but have been updated in the latest capistrano gem
|
@@ -71,11 +77,13 @@ set(:previous_revision) { capture("cat #{previous_release}/REVISION", :except =>
|
|
71
77
|
|
72
78
|
_cset(:release_settings) { domain.to_a.map { |d| File.join(release_path, drupal_path, 'sites', d, settings) } }
|
73
79
|
_cset(:release_files) { domain.to_a.map { |d| File.join(release_path, drupal_path, 'sites', d, files) } }
|
80
|
+
_cset(:release_private_files) { domain.to_a.map { |d| File.join(release_path, drupal_path, 'sites', d, private_files) } }
|
74
81
|
_cset(:release_domain) { domain.to_a.map { |d| File.join(release_path, drupal_path, 'sites', d) } }
|
75
82
|
|
76
|
-
_cset(:previous_release_settings)
|
77
|
-
_cset(:previous_release_files)
|
78
|
-
_cset(:
|
83
|
+
_cset(:previous_release_settings) { releases.length > 1 ? domain.to_a.map { |d| File.join(previous_release, drupal_path, 'sites', d, settings) } : nil }
|
84
|
+
_cset(:previous_release_files) { releases.length > 1 ? domain.to_a.map { |d| File.join(previous_release, drupal_path, 'sites', d, files) } : nil }
|
85
|
+
_cset(:previous_release_private_files) { releases.length > 1 ? domain.to_a.map { |d| File.join(previous_release, drupal_path, 'sites', d, private_files) } : nil }
|
86
|
+
_cset(:previous_release_domain) { releases.length > 1 ? domain.to_a.map { |d| File.join(previous_release, drupal_path, 'sites', d) } : nil }
|
79
87
|
|
80
88
|
_cset(:is_multisite) { domain.to_a.size > 1 }
|
81
89
|
|
@@ -135,6 +143,13 @@ namespace :deploy do
|
|
135
143
|
mkdir -p #{dirs.join(' ')} && #{try_sudo} chown #{user}:#{srv_usr} #{shared_files.join(' ')} && #{try_sudo} chmod g+w #{shared_files.join(' ')}
|
136
144
|
CMD
|
137
145
|
|
146
|
+
# Generate private files when enabled.
|
147
|
+
if use_private_files
|
148
|
+
run <<-CMD
|
149
|
+
mkdir -p #{shared_private_files} && #{try_sudo} chown #{user}:#{srv_usr} #{shared_private_files.join(' ')} && #{try_sudo} chmod g+w #{shared_private_files.join(' ')}
|
150
|
+
CMD
|
151
|
+
end
|
152
|
+
|
138
153
|
#create drupal config file
|
139
154
|
domain.each_with_index do |d, i|
|
140
155
|
configuration = drupal_settings(drupal_version, d)
|
@@ -145,6 +160,9 @@ namespace :deploy do
|
|
145
160
|
|
146
161
|
desc "[internal] Rebuild files and settings symlinks"
|
147
162
|
task :finalize_update, :except => { :no_release => true } do
|
163
|
+
if make_install_profile
|
164
|
+
run "cd #{current_release} && drush make #{make_file} #{drupal_path}"
|
165
|
+
end
|
148
166
|
# Specifies an on_rollback hook for the currently executing task. If this
|
149
167
|
# or any subsequent task then fails, and a transaction is active, this
|
150
168
|
# hook will be executed.
|
@@ -152,6 +170,9 @@ namespace :deploy do
|
|
152
170
|
if previous_release
|
153
171
|
#FIXME: won't work on mulitsite config
|
154
172
|
run "ln -nfs #{shared_files} #{previous_release_files} && ln -nfs #{shared_settings} #{previous_release_settings}"
|
173
|
+
if use_private_files
|
174
|
+
run "ln -nfs #{shared_private_files} #{previous_release_private_files}"
|
175
|
+
end
|
155
176
|
else
|
156
177
|
logger.important "no previous release to rollback to, rollback of drupal shared data skipped."
|
157
178
|
end
|
@@ -167,6 +188,14 @@ namespace :deploy do
|
|
167
188
|
ln -nfs #{shared_settings[i]} #{release_settings[i]}
|
168
189
|
CMD
|
169
190
|
end
|
191
|
+
|
192
|
+
if use_private_files
|
193
|
+
shared_private_files.each_with_index do |sf, i|
|
194
|
+
run <<-CMD
|
195
|
+
ln -nfs #{sf} #{release_private_files[i]}
|
196
|
+
CMD
|
197
|
+
end
|
198
|
+
end
|
170
199
|
end
|
171
200
|
|
172
201
|
desc "[internal] cleanup old symlinks, must run after deploy:symlink"
|
@@ -178,6 +207,11 @@ namespace :deploy do
|
|
178
207
|
rm -f #{previous_release_settings[i]} &&
|
179
208
|
rm -f #{previous_release_files[i]}
|
180
209
|
CMD
|
210
|
+
if use_private_files
|
211
|
+
run <<-CMD
|
212
|
+
rm -f #{previous_release_private_files[i]}
|
213
|
+
CMD
|
214
|
+
end
|
181
215
|
end
|
182
216
|
end
|
183
217
|
end
|
@@ -235,6 +269,14 @@ namespace :deploy do
|
|
235
269
|
ln -nfs #{shared_settings[i]} #{previous_release_settings[i]}
|
236
270
|
CMD
|
237
271
|
end
|
272
|
+
|
273
|
+
if use_private_files
|
274
|
+
shared_private_files.each_with_index do |sf, i|
|
275
|
+
run <<-CMD
|
276
|
+
ln -nfs #{sf} #{previous_release_private_files[i]}
|
277
|
+
CMD
|
278
|
+
end
|
279
|
+
end
|
238
280
|
else
|
239
281
|
abort "could not rollback the code because there is no prior release"
|
240
282
|
end
|
@@ -258,7 +300,7 @@ namespace :deploy do
|
|
258
300
|
end
|
259
301
|
|
260
302
|
end
|
261
|
-
|
303
|
+
|
262
304
|
namespace :web do
|
263
305
|
desc "Makes the application web-accessible again."
|
264
306
|
task :enable do
|
@@ -497,8 +539,31 @@ namespace :manage do
|
|
497
539
|
run "rm #{File.join(dbbackups_path, "#{sql_file}")}"
|
498
540
|
end
|
499
541
|
end
|
500
|
-
end
|
501
542
|
|
543
|
+
desc 'Download files and extract locally'
|
544
|
+
task :pull_files do
|
545
|
+
abort("ERROR: multisite not supported") if is_multisite
|
546
|
+
|
547
|
+
set(:runit, Capistrano::CLI.ui.ask("Do you want to download the files? type 'yes' to continue: "))
|
548
|
+
if runit == 'yes'
|
549
|
+
run "if [ ! -d #{deploy_to}/tmp ]; then mkdir #{deploy_to}/tmp; fi" # create tmp folder if needed
|
550
|
+
# pack and remote file
|
551
|
+
file = "#{deploy_to}/tmp/#{releases.last}.tar.gz"
|
552
|
+
run "cd #{current_path}/#{drupal_path}/sites/default && tar -zcvf #{file} files/*"
|
553
|
+
# copy to local
|
554
|
+
system "if [ ! -d build ]; then mkdir build; fi" # create build folder locally if needed
|
555
|
+
download "#{file}", "build/", :once => true, :via => :scp
|
556
|
+
run "rm #{file}"
|
557
|
+
set(:extract, Capistrano::CLI.ui.ask("Do you want to extract #{File.basename(file)}? type 'yes' to continue: "))
|
558
|
+
if extract == 'yes'
|
559
|
+
# extract the files
|
560
|
+
set(:where, Capistrano::CLI.ui.ask("Where? (default: build): "))
|
561
|
+
dest = where == '' ? "build" : "#{where}"
|
562
|
+
system "tar -zxvf build/#{File.basename(file)} -C #{dest}"
|
563
|
+
end
|
564
|
+
end
|
565
|
+
end
|
566
|
+
end
|
502
567
|
|
503
568
|
# =========================
|
504
569
|
# Helper methods
|
@@ -535,7 +600,7 @@ $databases = array ('default' => array ('default' => array (
|
|
535
600
|
'host' => '#{db_host}',
|
536
601
|
'port' => '',
|
537
602
|
'driver' => '#{db_type}',
|
538
|
-
'prefix' => '',
|
603
|
+
'prefix' => '#{db_prefix}',
|
539
604
|
)));
|
540
605
|
ini_set('session.gc_probability', 1);
|
541
606
|
ini_set('session.gc_divisor', 100);
|
@@ -555,4 +620,4 @@ if (file_exists($path)) {
|
|
555
620
|
end
|
556
621
|
end
|
557
622
|
|
558
|
-
end # Capistrano::Configuration.instance.load
|
623
|
+
end # Capistrano::Configuration.instance.load
|
metadata
CHANGED
@@ -1,13 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-didi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 4
|
10
|
-
version: 0.4.4
|
4
|
+
version: 0.4.5
|
11
5
|
platform: ruby
|
12
6
|
authors:
|
13
7
|
- Koen Van Winckel
|
@@ -15,132 +9,87 @@ autorequire:
|
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
11
|
|
18
|
-
date:
|
12
|
+
date: 2013-07-03 00:00:00 Z
|
19
13
|
dependencies:
|
20
14
|
- !ruby/object:Gem::Dependency
|
15
|
+
name: railsless-deploy
|
16
|
+
prerelease: false
|
21
17
|
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
-
none: false
|
23
18
|
requirements:
|
24
19
|
- - ">="
|
25
20
|
- !ruby/object:Gem::Version
|
26
|
-
hash: 19
|
27
|
-
segments:
|
28
|
-
- 1
|
29
|
-
- 0
|
30
|
-
- 2
|
31
21
|
version: 1.0.2
|
32
|
-
version_requirements: *id001
|
33
|
-
name: railsless-deploy
|
34
|
-
prerelease: false
|
35
22
|
type: :development
|
23
|
+
version_requirements: *id001
|
36
24
|
- !ruby/object:Gem::Dependency
|
25
|
+
name: capistrano
|
26
|
+
prerelease: false
|
37
27
|
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
-
none: false
|
39
28
|
requirements:
|
40
29
|
- - ">="
|
41
30
|
- !ruby/object:Gem::Version
|
42
|
-
hash: 63
|
43
|
-
segments:
|
44
|
-
- 2
|
45
|
-
- 12
|
46
|
-
- 0
|
47
31
|
version: 2.12.0
|
48
|
-
version_requirements: *id002
|
49
|
-
name: capistrano
|
50
|
-
prerelease: false
|
51
32
|
type: :development
|
33
|
+
version_requirements: *id002
|
52
34
|
- !ruby/object:Gem::Dependency
|
35
|
+
name: shoulda
|
36
|
+
prerelease: false
|
53
37
|
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
-
none: false
|
55
38
|
requirements:
|
56
|
-
-
|
39
|
+
- &id006
|
40
|
+
- ">="
|
57
41
|
- !ruby/object:Gem::Version
|
58
|
-
hash: 3
|
59
|
-
segments:
|
60
|
-
- 0
|
61
42
|
version: "0"
|
62
|
-
version_requirements: *id003
|
63
|
-
name: shoulda
|
64
|
-
prerelease: false
|
65
43
|
type: :development
|
44
|
+
version_requirements: *id003
|
66
45
|
- !ruby/object:Gem::Dependency
|
46
|
+
name: bundler
|
47
|
+
prerelease: false
|
67
48
|
requirement: &id004 !ruby/object:Gem::Requirement
|
68
|
-
none: false
|
69
49
|
requirements:
|
70
50
|
- - ~>
|
71
51
|
- !ruby/object:Gem::Version
|
72
|
-
hash: 21
|
73
|
-
segments:
|
74
|
-
- 1
|
75
|
-
- 1
|
76
|
-
- 3
|
77
52
|
version: 1.1.3
|
78
|
-
version_requirements: *id004
|
79
|
-
name: bundler
|
80
|
-
prerelease: false
|
81
53
|
type: :development
|
54
|
+
version_requirements: *id004
|
82
55
|
- !ruby/object:Gem::Dependency
|
56
|
+
name: jeweler
|
57
|
+
prerelease: false
|
83
58
|
requirement: &id005 !ruby/object:Gem::Requirement
|
84
|
-
none: false
|
85
59
|
requirements:
|
86
60
|
- - ~>
|
87
61
|
- !ruby/object:Gem::Version
|
88
|
-
hash: 7
|
89
|
-
segments:
|
90
|
-
- 1
|
91
|
-
- 6
|
92
|
-
- 4
|
93
62
|
version: 1.6.4
|
94
|
-
version_requirements: *id005
|
95
|
-
name: jeweler
|
96
|
-
prerelease: false
|
97
63
|
type: :development
|
64
|
+
version_requirements: *id005
|
98
65
|
- !ruby/object:Gem::Dependency
|
99
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
101
|
-
requirements:
|
102
|
-
- - ">="
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
hash: 3
|
105
|
-
segments:
|
106
|
-
- 0
|
107
|
-
version: "0"
|
108
|
-
version_requirements: *id006
|
109
66
|
name: rcov
|
110
67
|
prerelease: false
|
111
|
-
type: :development
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
68
|
requirement: &id007 !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
69
|
requirements:
|
116
|
-
-
|
117
|
-
|
118
|
-
hash: 63
|
119
|
-
segments:
|
120
|
-
- 2
|
121
|
-
- 12
|
122
|
-
- 0
|
123
|
-
version: 2.12.0
|
70
|
+
- *id006
|
71
|
+
type: :development
|
124
72
|
version_requirements: *id007
|
73
|
+
- !ruby/object:Gem::Dependency
|
125
74
|
name: capistrano
|
126
75
|
prerelease: false
|
127
|
-
type: :runtime
|
128
|
-
- !ruby/object:Gem::Dependency
|
129
76
|
requirement: &id008 !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
77
|
requirements:
|
132
78
|
- - ">="
|
133
79
|
- !ruby/object:Gem::Version
|
134
|
-
|
135
|
-
|
136
|
-
- 1
|
137
|
-
- 0
|
138
|
-
- 2
|
139
|
-
version: 1.0.2
|
80
|
+
version: 2.12.0
|
81
|
+
type: :runtime
|
140
82
|
version_requirements: *id008
|
83
|
+
- !ruby/object:Gem::Dependency
|
141
84
|
name: railsless-deploy
|
142
85
|
prerelease: false
|
86
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 1.0.2
|
143
91
|
type: :runtime
|
92
|
+
version_requirements: *id009
|
144
93
|
description: didi is a collection of recipes for capistrano that allow drupal to be deployed, tested and used in a CI environment
|
145
94
|
email: koenvw@gmail.com
|
146
95
|
executables:
|
@@ -169,33 +118,23 @@ files:
|
|
169
118
|
homepage: http://github.com/koenvw/didi
|
170
119
|
licenses:
|
171
120
|
- MIT
|
121
|
+
metadata: {}
|
122
|
+
|
172
123
|
post_install_message: => "didify" and "didi" commands installed. Try them out!
|
173
124
|
rdoc_options: []
|
174
125
|
|
175
126
|
require_paths:
|
176
127
|
- lib
|
177
128
|
required_ruby_version: !ruby/object:Gem::Requirement
|
178
|
-
none: false
|
179
129
|
requirements:
|
180
|
-
-
|
181
|
-
- !ruby/object:Gem::Version
|
182
|
-
hash: 3
|
183
|
-
segments:
|
184
|
-
- 0
|
185
|
-
version: "0"
|
130
|
+
- *id006
|
186
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
|
-
none: false
|
188
132
|
requirements:
|
189
|
-
-
|
190
|
-
- !ruby/object:Gem::Version
|
191
|
-
hash: 3
|
192
|
-
segments:
|
193
|
-
- 0
|
194
|
-
version: "0"
|
133
|
+
- *id006
|
195
134
|
requirements: []
|
196
135
|
|
197
136
|
rubyforge_project:
|
198
|
-
rubygems_version:
|
137
|
+
rubygems_version: 2.0.14
|
199
138
|
signing_key:
|
200
139
|
specification_version: 3
|
201
140
|
summary: didi - drupal deployment script based on capistrano
|