capistrano_evrone_recipes 0.1.11 → 0.1.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/capistrano_evrone_recipes/capistrano.rb +6 -4
- data/lib/capistrano_evrone_recipes/recipes/crontab.rb +7 -3
- data/lib/capistrano_evrone_recipes/recipes/deploy.rb +1 -12
- data/lib/capistrano_evrone_recipes/recipes/login.rb +2 -1
- data/lib/capistrano_evrone_recipes/recipes/migrate.rb +4 -2
- data/lib/capistrano_evrone_recipes/recipes/rails.rb +5 -3
- data/lib/capistrano_evrone_recipes/recipes/runit.rb +50 -32
- data/lib/capistrano_evrone_recipes/recipes/unicorn.rb +4 -10
- data/lib/capistrano_evrone_recipes/util.rb +29 -30
- data/lib/capistrano_evrone_recipes/version.rb +1 -1
- metadata +32 -44
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bb1291d5aa6007f379ce5c7aef95599db1064251
|
4
|
+
data.tar.gz: b5f784f23d1890e5fe8fe1dc4c3fb48ddd033051
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7112ce18ed7c4a8965a45c6c70ca5143a16138beb03c0cfc404c75f9372308a1f2d7899cefb07533fcc42543780e23d93450b7bada5f7f3c0832203c2c33c225
|
7
|
+
data.tar.gz: aff8ce74eebeb6648e716c79fad38b4db783d25e383cd81e89f3ef386adfb025c377517747495b2e8d349c7ff96fb0fa57677436010e0397e72143a2e7b5f659
|
@@ -2,13 +2,13 @@ require 'logger'
|
|
2
2
|
require File.dirname(__FILE__) + "/util"
|
3
3
|
|
4
4
|
Capistrano::Configuration.instance(:must_exist).load do
|
5
|
-
logger.level = Capistrano::Logger::
|
5
|
+
logger.level = Capistrano::Logger::INFO
|
6
6
|
|
7
7
|
default_run_options[:pty] = true
|
8
8
|
ssh_options[:forward_agent] = true
|
9
9
|
|
10
10
|
set :bundle_cmd, "rbenv exec bundle"
|
11
|
-
set :bundle_flags, "--deployment --quiet
|
11
|
+
set :bundle_flags, "--deployment --quiet"
|
12
12
|
set :rake, -> { "#{bundle_cmd} exec rake" }
|
13
13
|
set :keep_releases, 7
|
14
14
|
set :scm, "git"
|
@@ -17,19 +17,21 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
17
17
|
set :copy_exclude, [".git"]
|
18
18
|
set :repository_cache, -> { "#{deploy_to}/shared/#{application}.git" }
|
19
19
|
set :normalize_asset_timestamps, false
|
20
|
+
set :use_sudo, false
|
20
21
|
|
21
22
|
load "deploy"
|
22
23
|
require 'bundler/capistrano'
|
23
24
|
|
24
25
|
recipes_dir = File.dirname(File.expand_path(__FILE__))
|
25
26
|
|
27
|
+
#disabled_modules = fetch(:disabled_features, [])
|
28
|
+
|
26
29
|
load "#{recipes_dir}/recipes/crontab.rb"
|
27
30
|
load "#{recipes_dir}/recipes/runit.rb"
|
28
31
|
load "#{recipes_dir}/recipes/deploy.rb"
|
29
32
|
load "#{recipes_dir}/recipes/login.rb"
|
30
33
|
load "#{recipes_dir}/recipes/migrate.rb"
|
31
34
|
load "#{recipes_dir}/recipes/rails.rb"
|
32
|
-
load "#{recipes_dir}/recipes/unicorn.rb"
|
35
|
+
#load "#{recipes_dir}/recipes/unicorn.rb"
|
33
36
|
load "#{recipes_dir}/recipes/assets.rb"
|
34
|
-
load "#{recipes_dir}/recipes/silent.rb" if ENV['CAP_SILENT_MODE']
|
35
37
|
end
|
@@ -7,14 +7,18 @@ require "whenever/capistrano/recipes"
|
|
7
7
|
namespace :crontab do
|
8
8
|
desc "Generate crontab from config/whenever.rb"
|
9
9
|
task :generate, :roles => :crontab, :on_no_matching_servers => :continue, :except => { :no_release => true } do
|
10
|
-
|
11
|
-
|
10
|
+
if find_servers_for_task(current_task).any?
|
11
|
+
CapistranoEvroneRecipes::Util.ensure_changed_remote_files(self, "config/schedule.rb") do
|
12
|
+
find_and_execute_task("whenever:update_crontab")
|
13
|
+
end
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
15
17
|
desc "Clear crontab"
|
16
18
|
task :clear, :roles => :crontab, :on_no_matching_servers => :continue, :except => { :no_release => true } do
|
17
|
-
|
19
|
+
if find_servers_for_task(current_task).any?
|
20
|
+
find_and_execute_task("whenever:clear_crontab")
|
21
|
+
end
|
18
22
|
end
|
19
23
|
end
|
20
24
|
|
@@ -3,30 +3,19 @@ namespace :deploy do
|
|
3
3
|
task :symlink_configs do
|
4
4
|
s = "cd #{shared_path}/config && "
|
5
5
|
s << "for i in `find . -type f | sed 's/^\\.\\///'` ; do "
|
6
|
-
s << "echo \"
|
6
|
+
s << "echo \"create current/config/${i}\" ;"
|
7
7
|
s << "rm -f #{release_path}/config/${i} ;"
|
8
8
|
s << "ln -snf #{shared_path}/config/${i} #{release_path}/config/${i} ; done"
|
9
9
|
run s
|
10
10
|
end
|
11
11
|
|
12
12
|
task :start, :on_no_matching_servers => :continue, :except => { :no_release => true } do
|
13
|
-
CapistranoEvroneRecipes::Util.with_roles(self, :app) { unicorn.start }
|
14
|
-
CapistranoEvroneRecipes::Util.with_roles(self, :worker) { runit.start }
|
15
13
|
end
|
16
14
|
|
17
15
|
task :stop, :on_no_matching_servers => :continue, :except => { :no_release => true } do
|
18
|
-
CapistranoEvroneRecipes::Util.with_roles(self, :app) { unicorn.stop }
|
19
|
-
CapistranoEvroneRecipes::Util.with_roles(self, :worker) { runit.stop }
|
20
|
-
end
|
21
|
-
|
22
|
-
task :graceful_stop, :on_no_matching_servers => :continue, :except => { :no_release => true } do
|
23
|
-
CapistranoEvroneRecipes::Util.with_roles(self, :app) { unicorn.graceful_stop }
|
24
|
-
CapistranoEvroneRecipes::Util.with_roles(self, :worker) { runit.stop }
|
25
16
|
end
|
26
17
|
|
27
18
|
task :restart, :on_no_matching_servers => :continue, :except => {:no_release => true} do
|
28
|
-
CapistranoEvroneRecipes::Util.with_roles(self, :app) { unicorn.restart }
|
29
|
-
CapistranoEvroneRecipes::Util.with_roles(self, :worker) { runit.restart }
|
30
19
|
end
|
31
20
|
end
|
32
21
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
desc "Login to remote host"
|
2
2
|
task :login do
|
3
3
|
hostname = find_servers_for_task(current_task).first
|
4
|
-
|
4
|
+
port = hostname.port || fetch(:port, 22)
|
5
|
+
exec "ssh -A -p #{port} -l #{user} #{hostname} -t 'cd #{current_path} && ${SHELL} -l'"
|
5
6
|
end
|
@@ -3,8 +3,10 @@ namespace :deploy do
|
|
3
3
|
task :migrate, :roles => :db, :on_no_matching_servers => :continue, :only => {:primary => true}, :except => { :no_release => true } do
|
4
4
|
return if ENV['MIGRATE_SKIP']
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
if find_servers_for_task(current_task).any?
|
7
|
+
CapistranoEvroneRecipes::Util.ensure_changed_remote_dirs(self, "db/migrate") do
|
8
|
+
run "cd #{release_path} && #{fetch :rake} RAILS_ENV=#{rails_env} db:migrate"
|
9
|
+
end
|
8
10
|
end
|
9
11
|
end
|
10
12
|
end
|
@@ -4,8 +4,9 @@ namespace :rails do
|
|
4
4
|
task :console, :roles => :app do
|
5
5
|
server = find_servers_for_task(current_task).first
|
6
6
|
if server
|
7
|
-
|
8
|
-
|
7
|
+
port = server.port || fetch(:port, 22)
|
8
|
+
cmd = "ssh -p #{port} -l #{user} -A #{server} -t 'cd #{current_path} && #{fetch :bundle_cmd} exec rails console #{rails_env}'"
|
9
|
+
exec cmd
|
9
10
|
end
|
10
11
|
end
|
11
12
|
|
@@ -14,7 +15,8 @@ namespace :rails do
|
|
14
15
|
task :dbconsole, :roles => :db, :only => { :primary => true } do
|
15
16
|
server = find_servers_for_task(current_task).first
|
16
17
|
if server
|
17
|
-
|
18
|
+
port = server.port || fetch(:port, 22)
|
19
|
+
exec "ssh -p #{port} -l #{user} -A #{server} -t 'cd #{current_path} && #{fetch :bundle_cmd} exec rails dbconsole #{rails_env}'"
|
18
20
|
end
|
19
21
|
end
|
20
22
|
end
|
@@ -1,59 +1,77 @@
|
|
1
1
|
_cset(:runit_export_path) { "#{latest_release}/var/services" }
|
2
2
|
_cset(:runit_services_path) { "#{deploy_to}/services" }
|
3
3
|
_cset(:runit_export_cmd) { "#{fetch :bundle_cmd} exec foreman export runitu" }
|
4
|
-
_cset(:runit_procfile) { "
|
4
|
+
_cset(:runit_procfile) { "Procfile" }
|
5
5
|
_cset(:foreman_concurency) { nil }
|
6
6
|
|
7
7
|
namespace :runit do
|
8
8
|
|
9
9
|
desc "Restart Procfile services"
|
10
10
|
task :restart, :roles => :worker, :on_no_matching_servers => :continue, :except => { :no_release => true } do
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
11
|
+
if find_servers_for_task(current_task).any?
|
12
|
+
cmd = %Q{
|
13
|
+
if [ -d #{runit_export_path} ] ; then
|
14
|
+
echo "----> Updating services" ;
|
15
|
+
rm -rf #{runit_services_path}/* ;
|
16
|
+
sync ;
|
17
|
+
cp -r #{runit_export_path}/* #{runit_services_path}/ ;
|
18
|
+
sync ;
|
19
|
+
rm -rf #{runit_export_path} ;
|
20
|
+
else
|
21
|
+
echo "----> Restart services" ;
|
22
|
+
test $(ls -1 #{runit_services_path} | wc -l) -eq 0 || sv t #{runit_services_path}/* ;
|
23
|
+
fi
|
24
|
+
}.compact
|
25
|
+
run cmd
|
17
26
|
end
|
18
27
|
end
|
19
28
|
|
20
|
-
task :relink, :roles => :worker, :on_no_matching_servers => :continue, :except => { :no_release => true } do
|
21
|
-
cmd = <<-EOF
|
22
|
-
(test -L previous && readlink previous | xargs rm -rf) ;
|
23
|
-
rm -f current.new &&
|
24
|
-
ln -s #{runit_export_path} current.new &&
|
25
|
-
rm -f previous &&
|
26
|
-
(test -L current && mv current previous) || true
|
27
|
-
&& mv current.new current
|
28
|
-
EOF
|
29
|
-
cmd = cmd.gsub(/\n/, " ").gsub(/ +/, " ")
|
30
|
-
run("cd #{runit_services_path} && #{cmd}")
|
31
|
-
end
|
32
|
-
|
33
29
|
desc "Stop services"
|
34
30
|
task :stop, :roles => :worker, :on_no_matching_servers => :continue, :except => { :no_release => true } do
|
35
|
-
|
36
|
-
|
37
|
-
|
31
|
+
if find_servers_for_task(current_task).any?
|
32
|
+
run "sv -w 10 force-stop #{runit_services_path}/*"
|
33
|
+
end
|
38
34
|
end
|
39
35
|
|
40
36
|
desc "Start services"
|
41
37
|
task :start, :roles => :worker, :on_no_matching_servers => :continue, :except => { :no_release => true } do
|
42
|
-
|
43
|
-
|
44
|
-
|
38
|
+
if find_servers_for_task(current_task).any?
|
39
|
+
run "sv -v start #{runit_services_path}/*"
|
40
|
+
end
|
45
41
|
end
|
46
42
|
|
47
43
|
desc "Export Procfile"
|
48
44
|
task :export, :roles => :worker, :on_no_matching_servers => :continue, :except => { :no_release => true } do
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
45
|
+
if find_servers_for_task(current_task).any?
|
46
|
+
CapistranoEvroneRecipes::Util.ensure_changed_remote_files(self, fetch(:runit_procfile)) do
|
47
|
+
env = %{ RAILS_ENV=#{rails_env} }.strip + "\n"
|
48
|
+
put(env, "#{latest_release}/.env")
|
49
|
+
|
50
|
+
c = fetch(:foreman_concurency) ? "-c #{fetch :foreman_concurency}" : ""
|
51
|
+
cmd = %{
|
52
|
+
cd #{latest_release} &&
|
53
|
+
#{runit_export_cmd} #{runit_export_path}
|
54
|
+
-e #{latest_release}/.env
|
55
|
+
-l #{shared_path}/log
|
56
|
+
-f #{latest_release}/#{runit_procfile}
|
57
|
+
--root=#{current_path}
|
58
|
+
-a #{application} #{c} > /dev/null &&
|
59
|
+
echo "----> Export #{runit_procfile}"
|
60
|
+
}.compact
|
61
|
+
run cmd
|
53
62
|
|
54
|
-
|
55
|
-
|
63
|
+
cmd = %{
|
64
|
+
for i in $(ls #{runit_export_path}/); do
|
65
|
+
sed -i 's|#{runit_export_path}|#{runit_services_path}|g' #{runit_export_path}/${i}/run ;
|
66
|
+
done
|
67
|
+
}.compact
|
68
|
+
run cmd
|
69
|
+
end
|
70
|
+
end
|
56
71
|
end
|
57
72
|
end
|
58
73
|
|
59
74
|
after "deploy:finalize_update", "runit:export"
|
75
|
+
after "deploy:start", "runit:start"
|
76
|
+
after "deploy:stop", "runit:stop"
|
77
|
+
after "deploy:restart", "runit:restart"
|
@@ -12,11 +12,6 @@ EOF
|
|
12
12
|
run cmd
|
13
13
|
end
|
14
14
|
|
15
|
-
desc "Fast restart unicorn"
|
16
|
-
task :fast_restart, :roles => :app, :on_no_matching_servers => :continue, :except => {:no_release => true} do
|
17
|
-
run "test -f #{fetch :unicorn_pid} ] && kill -s USR2 `cat #{fetch :unicorn_pid}`"
|
18
|
-
end
|
19
|
-
|
20
15
|
desc "Start unicorn"
|
21
16
|
task :start, :roles => :app, :on_no_matching_servers => :continue, :except => {:no_release => true} do
|
22
17
|
run "cd #{current_path} && env #{fetch :unicorn_binary} -c #{fetch :unicorn_config} -E #{rails_env} -D"
|
@@ -26,9 +21,8 @@ EOF
|
|
26
21
|
task :stop, :roles => :app, :on_no_matching_servers => :continue, :except => {:no_release => true} do
|
27
22
|
run "test -f #{fetch :unicorn_pid} && kill `cat #{fetch :unicorn_pid}`"
|
28
23
|
end
|
29
|
-
|
30
|
-
desc "Graceful stop unicorn"
|
31
|
-
task :graceful_stop, :on_no_matching_servers => :continue, :roles => :app, :except => { :no_release => true } do
|
32
|
-
run "test -f #{fetch :unicorn_pid} && kill -s QUIT `cat #{fetch :unicorn_pid}`"
|
33
|
-
end
|
34
24
|
end
|
25
|
+
|
26
|
+
after "deploy:start", "unicorn:start"
|
27
|
+
after "deploy:stop", "unicorn:stop"
|
28
|
+
after "deploy:restart", "unicorn:restart"
|
@@ -2,45 +2,44 @@ module CapistranoEvroneRecipes
|
|
2
2
|
class Util
|
3
3
|
class << self
|
4
4
|
def ensure_changed_remote_dirs(cap, path)
|
5
|
-
|
6
|
-
-> { cap.capture("diff -r #{cap.previous_release}/#{path} #{cap.current_release}/#{path} | wc -l").to_i }
|
7
|
-
else
|
8
|
-
-> { 1 }
|
9
|
-
end
|
10
|
-
force = ENV["FORCE"].to_i
|
11
|
-
if force > 0 || diff.call > 0
|
5
|
+
if ENV['FORCE'] || !cap.previous_release
|
12
6
|
yield
|
13
|
-
|
14
|
-
|
15
|
-
|
7
|
+
return
|
8
|
+
end
|
9
|
+
cap.run changed?(cap, path, recursive: true) do |ch, st, data|
|
10
|
+
Capistrano::Configuration.default_io_proc.call(ch,st,data)
|
11
|
+
unless data.include?(" is not changed")
|
12
|
+
yield
|
13
|
+
end
|
16
14
|
end
|
17
15
|
end
|
18
16
|
|
19
17
|
def ensure_changed_remote_files(cap, path)
|
20
|
-
|
21
|
-
-> { cap.capture("diff -r #{cap.previous_release}/#{path} #{cap.current_release}/#{path} | wc -l").to_i }
|
22
|
-
else
|
23
|
-
-> { 1 }
|
24
|
-
end
|
25
|
-
force = ENV["FORCE"].to_i
|
26
|
-
if force > 0 || diff.call > 0
|
18
|
+
if ENV['FORCE'] || !cap.previous_release
|
27
19
|
yield
|
28
|
-
|
29
|
-
|
30
|
-
|
20
|
+
return
|
21
|
+
end
|
22
|
+
cap.run changed?(cap, path) do |ch, st, data|
|
23
|
+
Capistrano::Configuration.default_io_proc.call(ch,st,data)
|
24
|
+
unless data.include?(" is not changed")
|
25
|
+
yield
|
26
|
+
end
|
31
27
|
end
|
32
28
|
end
|
33
29
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
30
|
+
def changed?(cap, path, options = {})
|
31
|
+
r = options[:recursive] ? "-r" : ""
|
32
|
+
%{
|
33
|
+
diff #{r} #{cap.previous_release}/#{path} #{cap.latest_release}/#{path} |
|
34
|
+
wc -l |
|
35
|
+
grep -q -v 0 ;
|
36
|
+
ST=$? ;
|
37
|
+
if [ $ST -eq 0 ] ; then
|
38
|
+
echo '----> #{path} changed' ;
|
39
|
+
else
|
40
|
+
echo '----> #{path} is not changed' ;
|
41
|
+
fi
|
42
|
+
}.compact
|
44
43
|
end
|
45
44
|
end
|
46
45
|
end
|
metadata
CHANGED
@@ -1,96 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano_evrone_recipes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.1.11
|
4
|
+
version: 0.1.12
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Dmitry Galinsky
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-09-19 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
|
14
|
+
name: capistrano
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 2.13.5
|
20
|
-
none: false
|
21
|
-
name: capistrano
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
23
|
requirements:
|
26
|
-
- -
|
24
|
+
- - '>='
|
27
25
|
- !ruby/object:Gem::Version
|
28
26
|
version: 2.13.5
|
29
|
-
none: false
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
|
28
|
+
name: colored
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
32
30
|
requirements:
|
33
|
-
- -
|
31
|
+
- - '>='
|
34
32
|
- !ruby/object:Gem::Version
|
35
33
|
version: '0'
|
36
|
-
none: false
|
37
|
-
name: colored
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
|
-
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
37
|
requirements:
|
42
|
-
- -
|
38
|
+
- - '>='
|
43
39
|
- !ruby/object:Gem::Version
|
44
40
|
version: '0'
|
45
|
-
none: false
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
|
-
|
42
|
+
name: unicorn
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
48
44
|
requirements:
|
49
|
-
- -
|
45
|
+
- - '>='
|
50
46
|
- !ruby/object:Gem::Version
|
51
47
|
version: '0'
|
52
|
-
none: false
|
53
|
-
name: unicorn
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
51
|
requirements:
|
58
|
-
- -
|
52
|
+
- - '>='
|
59
53
|
- !ruby/object:Gem::Version
|
60
54
|
version: '0'
|
61
|
-
none: false
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
|
-
|
56
|
+
name: foreman_export_runitu
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
64
58
|
requirements:
|
65
|
-
- -
|
59
|
+
- - '>='
|
66
60
|
- !ruby/object:Gem::Version
|
67
61
|
version: '0'
|
68
|
-
none: false
|
69
|
-
name: foreman_export_runitu
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
|
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
65
|
requirements:
|
74
|
-
- -
|
66
|
+
- - '>='
|
75
67
|
- !ruby/object:Gem::Version
|
76
68
|
version: '0'
|
77
|
-
none: false
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
|
-
|
70
|
+
name: whenever
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
80
72
|
requirements:
|
81
|
-
- -
|
73
|
+
- - '>='
|
82
74
|
- !ruby/object:Gem::Version
|
83
75
|
version: '0'
|
84
|
-
none: false
|
85
|
-
name: whenever
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
|
-
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
79
|
requirements:
|
90
|
-
- -
|
80
|
+
- - '>='
|
91
81
|
- !ruby/object:Gem::Version
|
92
82
|
version: '0'
|
93
|
-
none: false
|
94
83
|
description: Capistrano recipes used in evrone company
|
95
84
|
email: dima.exe@gmail.com
|
96
85
|
executables: []
|
@@ -118,27 +107,26 @@ files:
|
|
118
107
|
- lib/capistrano_evrone_recipes/version.rb
|
119
108
|
homepage: http://github.com/evrone/capistrano_evrone_recipes
|
120
109
|
licenses: []
|
110
|
+
metadata: {}
|
121
111
|
post_install_message:
|
122
112
|
rdoc_options: []
|
123
113
|
require_paths:
|
124
114
|
- lib
|
125
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
126
116
|
requirements:
|
127
|
-
- -
|
117
|
+
- - '>='
|
128
118
|
- !ruby/object:Gem::Version
|
129
119
|
version: '0'
|
130
|
-
none: false
|
131
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
121
|
requirements:
|
133
|
-
- -
|
122
|
+
- - '>='
|
134
123
|
- !ruby/object:Gem::Version
|
135
124
|
version: '0'
|
136
|
-
none: false
|
137
125
|
requirements: []
|
138
126
|
rubyforge_project:
|
139
|
-
rubygems_version:
|
127
|
+
rubygems_version: 2.0.2
|
140
128
|
signing_key:
|
141
|
-
specification_version:
|
129
|
+
specification_version: 4
|
142
130
|
summary: Capistrano recipes used in evrone company
|
143
131
|
test_files: []
|
144
132
|
has_rdoc:
|