standup 0.4.0 → 0.5.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.
- data/.gitignore +6 -0
- data/.rvmrc +1 -1
- data/Gemfile +4 -0
- data/README.md +1 -0
- data/Rakefile +2 -29
- data/lib/standup/remoting.rb +42 -14
- data/lib/standup/scripts/node.rb +2 -1
- data/lib/standup/version.rb +7 -0
- data/lib/standup.rb +2 -5
- data/scripts/delayed_job/delayed_job +5 -0
- data/scripts/delayed_job.rb +7 -0
- data/scripts/init/standup.yml +2 -0
- data/scripts/passenger.rb +1 -1
- data/scripts/redis.rb +20 -25
- data/scripts/ruby.rb +45 -6
- data/scripts/update.rb +17 -23
- data/scripts/webapp.rb +54 -34
- data/standup.gemspec +24 -120
- metadata +14 -55
- data/VERSION +0 -1
data/.gitignore
ADDED
data/.rvmrc
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
rvm
|
1
|
+
rvm 1.9.2
|
2
2
|
|
data/Gemfile
ADDED
data/README.md
CHANGED
data/Rakefile
CHANGED
@@ -1,29 +1,2 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = 'standup'
|
8
|
-
gem.summary = %Q{Standup is an application deployment and infrastructure management tool for Rails and Amazon EC2}
|
9
|
-
gem.email = 'ilia@flamefork.ru'
|
10
|
-
gem.homepage = 'https://github.com/cloudcastle/standup'
|
11
|
-
gem.authors = ['Ilia Ablamonov', 'Artem Orlov', 'Cloud Castle Inc.']
|
12
|
-
|
13
|
-
gem.add_dependency 'trollop', '>= 1.16'
|
14
|
-
gem.add_dependency 'i18n', '>= 0.5.0'
|
15
|
-
gem.add_dependency 'activesupport', '>= 3.0'
|
16
|
-
gem.add_dependency 'settingslogic', '>= 2.0'
|
17
|
-
gem.add_dependency 'amazon-ec2', '>= 0.9'
|
18
|
-
gem.add_dependency 'aws-s3', '>= 0.5'
|
19
|
-
gem.add_dependency 'net-ssh', '>= 2.0'
|
20
|
-
gem.add_dependency 'highline', '>= 1.5.2'
|
21
|
-
|
22
|
-
gem.executables = ['standup']
|
23
|
-
|
24
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
25
|
-
end
|
26
|
-
Jeweler::GemcutterTasks.new
|
27
|
-
rescue LoadError
|
28
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
29
|
-
end
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
data/lib/standup/remoting.rb
CHANGED
@@ -8,7 +8,8 @@ module Standup
|
|
8
8
|
@keypair_file = Settings.aws.keypair_file
|
9
9
|
@user = @node.scripts.ec2.params.ssh_user
|
10
10
|
@ssh = nil
|
11
|
-
@
|
11
|
+
@rvm_installed = nil
|
12
|
+
@context = {}
|
12
13
|
end
|
13
14
|
|
14
15
|
def download *files
|
@@ -51,18 +52,38 @@ module Standup
|
|
51
52
|
:to => file,
|
52
53
|
:sudo => opts[:sudo]
|
53
54
|
end
|
54
|
-
|
55
|
-
def
|
55
|
+
|
56
|
+
def with_context new_context = {}
|
57
|
+
old_context = @context.dup
|
58
|
+
yield(@context = @context.merge(new_context).merge(:prefix => "#{old_context[:prefix]} #{new_context[:prefix]}")).tap do
|
59
|
+
@context = old_context
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def in_dir path, &block
|
56
64
|
raise ArgumentError, 'Only absolute paths allowed' unless path[0,1] == '/'
|
57
|
-
|
58
|
-
@path = path
|
59
|
-
result = yield path
|
60
|
-
@path = old_path
|
61
|
-
result
|
65
|
+
with_context(:path => path, &block)
|
62
66
|
end
|
63
|
-
|
64
|
-
def
|
65
|
-
|
67
|
+
|
68
|
+
def as_user user, &block
|
69
|
+
with_context(:user => user, &block)
|
70
|
+
end
|
71
|
+
|
72
|
+
def with_prefix prefix, &block
|
73
|
+
with_context(:prefix => prefix, &block)
|
74
|
+
end
|
75
|
+
|
76
|
+
def exec command, context = @context
|
77
|
+
command = "#{context[:prefix].strip} #{command}" if context[:prefix].present?
|
78
|
+
command = "cd #{context[:path]} && #{command}" if context[:path].present?
|
79
|
+
command = "/usr/local/rvm/bin/rvm-shell -c \"#{command}\"" if rvm_installed?
|
80
|
+
|
81
|
+
if context[:user].present?
|
82
|
+
command = "sudo -u #{context[:user]} #{command}"
|
83
|
+
elsif context[:sudo]
|
84
|
+
command = "sudo #{command}"
|
85
|
+
end
|
86
|
+
|
66
87
|
bright_p command
|
67
88
|
ssh.exec! command do |ch, _, data|
|
68
89
|
ch[:result] ||= ""
|
@@ -72,12 +93,15 @@ module Standup
|
|
72
93
|
end
|
73
94
|
end
|
74
95
|
|
75
|
-
def sudo command
|
76
|
-
|
96
|
+
def sudo command = nil, &block
|
97
|
+
block = Proc.new { exec command } unless block_given?
|
98
|
+
with_context(:sudo => true, &block)
|
77
99
|
end
|
78
100
|
|
79
101
|
def su_exec user, command
|
80
|
-
|
102
|
+
as_user user do
|
103
|
+
exec command
|
104
|
+
end
|
81
105
|
end
|
82
106
|
|
83
107
|
def in_temp_dir &block
|
@@ -132,6 +156,10 @@ module Standup
|
|
132
156
|
@ssh = nil
|
133
157
|
end
|
134
158
|
|
159
|
+
def rvm_installed?
|
160
|
+
@rvm_installed ||= ssh.exec!("if [ -e /usr/local/rvm/bin/rvm ]; then echo 'true'; fi") == "true\n"
|
161
|
+
end
|
162
|
+
|
135
163
|
protected
|
136
164
|
|
137
165
|
def ssh
|
data/lib/standup/scripts/node.rb
CHANGED
@@ -11,7 +11,8 @@ module Standup
|
|
11
11
|
delegate :instance, :open_port, :open_ports, :remoting, :scripts,
|
12
12
|
:to => :@node
|
13
13
|
|
14
|
-
delegate :download, :upload, :remote_update, :
|
14
|
+
delegate :download, :upload, :remote_update, :file_exists?, :install_package, :install_packages, :install_gem, :update_cron,
|
15
|
+
:with_context, :exec, :sudo, :su_exec, :in_dir, :in_temp_dir, :as_user, :with_prefix,
|
15
16
|
:to => :remoting
|
16
17
|
|
17
18
|
attr_accessor :node
|
data/lib/standup.rb
CHANGED
@@ -13,6 +13,7 @@ require 'standup/remoting'
|
|
13
13
|
require 'standup/scripts/base'
|
14
14
|
require 'standup/scripts/node'
|
15
15
|
require 'standup/node'
|
16
|
+
require 'standup/version'
|
16
17
|
|
17
18
|
module Standup
|
18
19
|
module Scripts; end
|
@@ -60,10 +61,6 @@ module Standup
|
|
60
61
|
scripts[name] = script_class
|
61
62
|
end
|
62
63
|
|
63
|
-
def self.version
|
64
|
-
File.read(File.expand_path('../../VERSION', __FILE__)).strip
|
65
|
-
end
|
66
|
-
|
67
64
|
def self.run_from_command_line
|
68
65
|
if File.exists?('Gemfile') && !ENV['BUNDLE_GEMFILE']
|
69
66
|
Kernel.exec "bundle exec standup #{ARGV.join(' ')}"
|
@@ -106,4 +103,4 @@ module Standup
|
|
106
103
|
opt_parser.die "unknown script #{script_name}", nil
|
107
104
|
end
|
108
105
|
end
|
109
|
-
end
|
106
|
+
end
|
data/scripts/delayed_job.rb
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
Standup.script :node do
|
2
2
|
def run
|
3
|
+
path_to_resque_exec = "#{scripts.webapp.app_path}/script/delayed_job"
|
4
|
+
with_processed_file script_file('delayed_job') do |file|
|
5
|
+
upload file,
|
6
|
+
:to => path_to_resque_exec,
|
7
|
+
:sudo => true
|
8
|
+
end
|
9
|
+
|
3
10
|
with_processed_file script_file('delayed_job_monit.conf') do |file|
|
4
11
|
scripts.monit.add_watch file
|
5
12
|
end
|
data/scripts/init/standup.yml
CHANGED
data/scripts/passenger.rb
CHANGED
@@ -2,7 +2,7 @@ Standup.script :node do
|
|
2
2
|
def run
|
3
3
|
scripts.ec2.open_port 80, 443
|
4
4
|
|
5
|
-
if install_gem('passenger', '3.0.
|
5
|
+
if install_gem('passenger', '3.0.7') || !file_exists?('/opt/nginx/sbin/nginx')
|
6
6
|
install_package 'libcurl4-openssl-dev'
|
7
7
|
sudo 'passenger-install-nginx-module --auto --auto-download --prefix=/opt/nginx'
|
8
8
|
end
|
data/scripts/redis.rb
CHANGED
@@ -1,35 +1,30 @@
|
|
1
1
|
Standup.script :node do
|
2
|
-
|
3
|
-
raise "Please call resque install instead"
|
4
|
-
end
|
5
|
-
|
6
|
-
def install_from_resque
|
7
|
-
in_dir "#{scripts.webapp.app_path}" do
|
8
|
-
sudo "git clone git://github.com/defunkt/resque.git"
|
9
|
-
end
|
2
|
+
REDIS_VERSION = "2.2.8"
|
10
3
|
|
11
|
-
|
12
|
-
|
4
|
+
def run
|
5
|
+
file_name = "redis-#{REDIS_VERSION}"
|
6
|
+
|
7
|
+
#TODO check version, specify it in standup config file
|
8
|
+
unless installed?
|
9
|
+
in_temp_dir do
|
10
|
+
exec "wget http://redis.googlecode.com/files/#{file_name}.tar.gz"
|
11
|
+
exec "tar xvfz #{file_name}.tar.gz"
|
12
|
+
exec "cd #{file_name} && sudo mkdir /opt/redis"
|
13
|
+
exec "cd #{file_name} && sudo make PREFIX=/opt/redis install"
|
14
|
+
end
|
15
|
+
|
16
|
+
sudo "ln -s /opt/redis/bin/redis-server /usr/local/bin/redis-server"
|
17
|
+
sudo "ln -s /opt/redis/bin/redis-cli /usr/local/bin/redis-cli"
|
13
18
|
end
|
14
19
|
|
15
|
-
sudo "rm -fr #{scripts.webapp.app_path}/resque"
|
16
|
-
|
17
|
-
|
18
|
-
upload script_file('redis.conf'),
|
19
|
-
:to => '/etc/redis.conf',
|
20
|
-
:sudo => true
|
21
20
|
with_processed_file script_file('redis.conf') do |file|
|
22
|
-
upload file, :to => '/etc/redis.conf',
|
23
|
-
:sudo => true
|
21
|
+
upload file, :to => '/etc/redis.conf', :sudo => true
|
24
22
|
end
|
25
|
-
|
26
|
-
|
27
|
-
:sudo => true
|
23
|
+
|
24
|
+
upload script_file('redis-server'), :to => '/etc/init.d/redis-server', :sudo => true
|
28
25
|
|
29
26
|
sudo 'chmod +x /etc/init.d/redis-server'
|
30
27
|
sudo '/usr/sbin/update-rc.d -f redis-server defaults'
|
31
|
-
sudo 'service redis-server stop'
|
32
|
-
sudo 'service redis-server start'
|
33
28
|
|
34
29
|
with_processed_file script_file('redis_monit.conf') do |file|
|
35
30
|
scripts.monit.add_watch file
|
@@ -38,7 +33,7 @@ Standup.script :node do
|
|
38
33
|
restart
|
39
34
|
end
|
40
35
|
|
41
|
-
def
|
42
|
-
|
36
|
+
def installed?
|
37
|
+
sudo('find /usr/local/bin/redis-server').match(/No such file or directory/).blank?
|
43
38
|
end
|
44
39
|
end
|
data/scripts/ruby.rb
CHANGED
@@ -1,12 +1,51 @@
|
|
1
1
|
Standup.script :node do
|
2
2
|
def run
|
3
|
-
return if
|
3
|
+
return if remoting.rvm_installed?
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
install_package 'git-core'
|
6
|
+
|
7
|
+
sudo 'bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)'
|
8
|
+
|
9
|
+
exec "rvm install #{version}"
|
10
|
+
exec "rvm use #{version} --default"
|
11
|
+
|
12
|
+
sudo 'usermod -a -G rvm www-data'
|
13
|
+
|
14
|
+
remoting.instance_variable_set :@rvm_installed, true
|
15
|
+
end
|
16
|
+
|
17
|
+
def version
|
18
|
+
@version ||= begin
|
19
|
+
files = Dir['**/.rvmrc']
|
20
|
+
|
21
|
+
if files.empty?
|
22
|
+
if params.version.present?
|
23
|
+
params.version
|
24
|
+
else
|
25
|
+
puts "Cannot fine ruby version declaration neither in .rvmrc file or ruby script param"
|
26
|
+
raise Exception.new('Cannot find ruby version declaration')
|
27
|
+
end
|
28
|
+
else
|
29
|
+
declarations = files.map do |file|
|
30
|
+
if (rvm_declaration = IO.read(file)).index('rvm') == 0
|
31
|
+
rvm_declaration.split(' ').second.split('@').first
|
32
|
+
else
|
33
|
+
puts "Cannot parse .rvmrc declaration:\n#{rvm_declaration}"
|
34
|
+
raise Exception.new("Cannot parse #{file}")
|
35
|
+
end
|
36
|
+
end.uniq
|
37
|
+
|
38
|
+
if declarations.size > 1
|
39
|
+
puts "Found different ruby version declarations #{declarations}"
|
40
|
+
if params.version.present?
|
41
|
+
params.version
|
42
|
+
else
|
43
|
+
raise Exception.new('Several ruby version declarations found')
|
44
|
+
end
|
45
|
+
else
|
46
|
+
declarations.first
|
47
|
+
end
|
48
|
+
end
|
10
49
|
end
|
11
50
|
end
|
12
51
|
end
|
data/scripts/update.rb
CHANGED
@@ -1,36 +1,30 @@
|
|
1
1
|
Standup.script :node do
|
2
|
-
self.description = 'Update
|
2
|
+
self.description = 'Update web application'
|
3
3
|
|
4
4
|
def run
|
5
|
-
in_dir scripts.webapp.
|
5
|
+
in_dir scripts.webapp.project_path do
|
6
6
|
sudo 'chown -R ubuntu:ubuntu .'
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
restart_webapp
|
7
|
+
|
8
|
+
exec 'git checkout HEAD .'
|
9
|
+
exec 'git pull'
|
10
|
+
|
11
|
+
scripts.webapp.checkout_branch
|
12
|
+
|
13
|
+
sudo "chown -R www-data:www-data ."
|
15
14
|
end
|
15
|
+
|
16
|
+
update_webapp
|
17
|
+
|
18
|
+
scripts.webapp.restart
|
16
19
|
end
|
17
20
|
|
18
21
|
protected
|
19
22
|
|
20
|
-
def pull_changes
|
21
|
-
exec 'git checkout HEAD .'
|
22
|
-
exec 'git pull'
|
23
|
-
exec "git checkout #{scripts.webapp.params.git_branch}"
|
24
|
-
end
|
25
|
-
|
26
23
|
def update_webapp
|
27
24
|
scripts.webapp.install_gems
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
sudo 'mkdir -p tmp'
|
33
|
-
sudo 'touch tmp/restart.txt'
|
34
|
-
scripts.delayed_job.restart if scripts.setup.has_script? 'delayed_job'
|
25
|
+
|
26
|
+
scripts.webapp.with_environment do
|
27
|
+
exec 'rake db:migrate'
|
28
|
+
end
|
35
29
|
end
|
36
30
|
end
|
data/scripts/webapp.rb
CHANGED
@@ -5,46 +5,59 @@ Standup.script :node do
|
|
5
5
|
:server_name => '_',
|
6
6
|
:git_branch => 'master',
|
7
7
|
:gem_manager => :bundler,
|
8
|
-
:bootstrap_db =>
|
8
|
+
:bootstrap_db => false,
|
9
|
+
:app_subdir => ''
|
9
10
|
}
|
10
11
|
|
11
12
|
def run
|
12
13
|
install_package 'git-core'
|
13
14
|
install_package params.additional_packages if params.additional_packages.present?
|
14
15
|
|
15
|
-
unless file_exists?
|
16
|
-
sudo "mkdir -p #{
|
16
|
+
unless file_exists? project_path
|
17
|
+
sudo "mkdir -p #{project_path}"
|
17
18
|
end
|
18
19
|
|
19
|
-
sudo "chown -R ubuntu:ubuntu #{
|
20
|
+
sudo "chown -R ubuntu:ubuntu #{project_path}"
|
20
21
|
|
21
22
|
ensure_github_access
|
22
23
|
|
23
|
-
unless file_exists? "#{
|
24
|
-
exec "rm -rf #{
|
25
|
-
exec "git clone git@github.com:#{github_repo}.git #{
|
26
|
-
end
|
27
|
-
|
28
|
-
in_dir app_path do
|
29
|
-
exec "git checkout #{params.git_branch}"
|
24
|
+
unless file_exists? "#{project_path}/.git"
|
25
|
+
exec "rm -rf #{project_path}/*"
|
26
|
+
exec "git clone git@github.com:#{github_repo}.git #{project_path}"
|
30
27
|
end
|
31
28
|
|
32
|
-
|
33
|
-
|
34
|
-
#TODO move boolean check to global stuff
|
35
|
-
bootstrap_db if params.bootstrap_db.match(/(true|t|yes|y|1)$/i) != nil
|
29
|
+
checkout_branch
|
36
30
|
|
37
31
|
sudo "chown -R www-data:www-data #{app_path}"
|
38
32
|
|
33
|
+
remote_update '/etc/environment',
|
34
|
+
"RAILS_ENV=#{params.rails_env}\n",
|
35
|
+
:delimiter => '# standup script rails_env',
|
36
|
+
:sudo => true
|
37
|
+
|
38
|
+
install_gems
|
39
|
+
|
40
|
+
bootstrap_db if params.bootstrap_db
|
41
|
+
|
39
42
|
with_processed_file script_file('webapp.conf') do |file|
|
40
43
|
scripts.passenger.add_server_conf file, "#{params.name}.conf"
|
41
44
|
end
|
42
45
|
end
|
43
46
|
|
44
|
-
def
|
47
|
+
def with_environment
|
48
|
+
with_context(:user => 'www-data', :path => app_path, :prefix => "RAILS_ENV=#{params.rails_env} bundle exec") do
|
49
|
+
yield
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def project_path
|
45
54
|
"/opt/#{params.name}"
|
46
55
|
end
|
47
56
|
|
57
|
+
def app_path
|
58
|
+
File.join(project_path, params.app_subdir)
|
59
|
+
end
|
60
|
+
|
48
61
|
def db_name
|
49
62
|
"#{params.name}_#{params.rails_env}"
|
50
63
|
end
|
@@ -64,7 +77,7 @@ Standup.script :node do
|
|
64
77
|
end
|
65
78
|
|
66
79
|
def install_gems
|
67
|
-
|
80
|
+
with_context(:user => 'www-data', :path => app_path) do
|
68
81
|
case params.gem_manager.to_sym
|
69
82
|
when :bundler
|
70
83
|
install_gem 'bundler'
|
@@ -80,37 +93,44 @@ Standup.script :node do
|
|
80
93
|
end
|
81
94
|
end
|
82
95
|
|
83
|
-
def
|
84
|
-
|
96
|
+
def checkout_branch
|
97
|
+
in_dir project_path do
|
98
|
+
exec "git checkout #{params.git_branch}"
|
99
|
+
end
|
85
100
|
end
|
86
101
|
|
87
|
-
def
|
88
|
-
|
102
|
+
def restart
|
103
|
+
in_dir app_path do
|
104
|
+
sudo 'mkdir -p tmp'
|
105
|
+
sudo 'touch tmp/restart.txt'
|
106
|
+
scripts.delayed_job.restart if scripts.setup.has_script? 'delayed_job'
|
107
|
+
scripts.resque.restart if scripts.setup.has_script? 'resque'
|
108
|
+
end
|
89
109
|
end
|
90
110
|
|
91
111
|
protected
|
92
112
|
|
93
113
|
def ensure_github_access
|
94
|
-
return unless exec('ssh -o StrictHostKeyChecking=no git@github.com') =~ /Permission denied \(publickey\)/
|
95
|
-
|
96
114
|
unless file_exists? '~/.ssh/id_rsa'
|
97
115
|
exec "ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' -C `hostname`"
|
98
116
|
end
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
117
|
+
|
118
|
+
while exec('ssh -o StrictHostKeyChecking=no git@github.com') =~ /Permission denied \(publickey\)/
|
119
|
+
password = bright_ask("Enter GitGub password for user #{params.github_user}:", false)
|
120
|
+
|
121
|
+
github_add_deploy_key params.github_user,
|
122
|
+
password,
|
123
|
+
github_repo,
|
124
|
+
exec('hostname').strip,
|
125
|
+
exec('cat ~/.ssh/id_rsa.pub').strip
|
126
|
+
end
|
107
127
|
end
|
108
128
|
|
109
129
|
def bootstrap_db
|
110
130
|
if db.create_database db_name
|
111
|
-
|
112
|
-
exec "
|
113
|
-
exec "
|
131
|
+
with_environment do
|
132
|
+
exec "rake db:schema:load"
|
133
|
+
exec "rake db:seed"
|
114
134
|
end
|
115
135
|
end
|
116
136
|
end
|
data/standup.gemspec
CHANGED
@@ -1,126 +1,30 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "standup/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
6
|
+
s.name = "standup"
|
7
|
+
s.version = Standup::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Ilia Ablamonov", "Artem Orlov", "Cloud Castle Inc."]
|
10
|
+
s.email = ["ilia@flamefork.ru", "art.orlov@gmail.com"]
|
11
|
+
s.homepage = "https://github.com/cloudcastle/standup"
|
12
|
+
s.summary = %q{Standup is an application deployment and infrastructure management tool for Rails and Amazon EC2}
|
13
|
+
s.description = %q{}
|
9
14
|
|
10
|
-
s.
|
11
|
-
s.authors = ["Ilia Ablamonov", "Artem Orlov", "Cloud Castle Inc."]
|
12
|
-
s.date = %q{2011-06-02}
|
13
|
-
s.default_executable = %q{standup}
|
14
|
-
s.email = %q{ilia@flamefork.ru}
|
15
|
-
s.executables = ["standup"]
|
16
|
-
s.extra_rdoc_files = [
|
17
|
-
"LICENSE",
|
18
|
-
"README.md"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".rvmrc",
|
22
|
-
"LICENSE",
|
23
|
-
"README.md",
|
24
|
-
"Rakefile",
|
25
|
-
"VERSION",
|
26
|
-
"bin/standup",
|
27
|
-
"lib/standup.rb",
|
28
|
-
"lib/standup/core_ext.rb",
|
29
|
-
"lib/standup/ec2.rb",
|
30
|
-
"lib/standup/ec2/base.rb",
|
31
|
-
"lib/standup/ec2/elastic_ip.rb",
|
32
|
-
"lib/standup/ec2/instance.rb",
|
33
|
-
"lib/standup/ec2/security_group.rb",
|
34
|
-
"lib/standup/ec2/volume.rb",
|
35
|
-
"lib/standup/node.rb",
|
36
|
-
"lib/standup/remoting.rb",
|
37
|
-
"lib/standup/scripts/base.rb",
|
38
|
-
"lib/standup/scripts/node.rb",
|
39
|
-
"lib/standup/settings.rb",
|
40
|
-
"scripts/allocate_ip.rb",
|
41
|
-
"scripts/appconsole.rb",
|
42
|
-
"scripts/basics.rb",
|
43
|
-
"scripts/basics/s3cfg",
|
44
|
-
"scripts/browse.rb",
|
45
|
-
"scripts/db_backup.rb",
|
46
|
-
"scripts/delayed_job.rb",
|
47
|
-
"scripts/delayed_job/delayed_job_monit.conf",
|
48
|
-
"scripts/download_db.rb",
|
49
|
-
"scripts/ec2.rb",
|
50
|
-
"scripts/generate.rb",
|
51
|
-
"scripts/generate/script.rb",
|
52
|
-
"scripts/init.rb",
|
53
|
-
"scripts/init/standup.yml",
|
54
|
-
"scripts/localize.rb",
|
55
|
-
"scripts/monit.rb",
|
56
|
-
"scripts/monit/monit",
|
57
|
-
"scripts/monit/monitrc",
|
58
|
-
"scripts/monit/sshd.conf",
|
59
|
-
"scripts/mysql.rb",
|
60
|
-
"scripts/passenger.rb",
|
61
|
-
"scripts/passenger/nginx",
|
62
|
-
"scripts/passenger/nginx.conf",
|
63
|
-
"scripts/passenger/nginx_monit.conf",
|
64
|
-
"scripts/postgresql.rb",
|
65
|
-
"scripts/postgresql/pg_hba.conf",
|
66
|
-
"scripts/postgresql/postgresql.conf",
|
67
|
-
"scripts/postgresql/postgresql_monit.conf",
|
68
|
-
"scripts/rake.rb",
|
69
|
-
"scripts/redis.rb",
|
70
|
-
"scripts/redis/redis-server",
|
71
|
-
"scripts/redis/redis.conf",
|
72
|
-
"scripts/redis/redis_monit.conf",
|
73
|
-
"scripts/resque.rb",
|
74
|
-
"scripts/resque/resque",
|
75
|
-
"scripts/resque/resque_monit.conf",
|
76
|
-
"scripts/ruby.rb",
|
77
|
-
"scripts/setup.rb",
|
78
|
-
"scripts/shell.rb",
|
79
|
-
"scripts/status.rb",
|
80
|
-
"scripts/terminate.rb",
|
81
|
-
"scripts/update.rb",
|
82
|
-
"scripts/upload_db.rb",
|
83
|
-
"scripts/watchlog.rb",
|
84
|
-
"scripts/webapp.rb",
|
85
|
-
"scripts/webapp/webapp.conf",
|
86
|
-
"standup.gemspec"
|
87
|
-
]
|
88
|
-
s.homepage = %q{https://github.com/cloudcastle/standup}
|
89
|
-
s.require_paths = ["lib"]
|
90
|
-
s.rubygems_version = %q{1.6.2}
|
91
|
-
s.summary = %q{Standup is an application deployment and infrastructure management tool for Rails and Amazon EC2}
|
92
|
-
|
93
|
-
if s.respond_to? :specification_version then
|
94
|
-
s.specification_version = 3
|
15
|
+
s.rubyforge_project = "standup"
|
95
16
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
s.add_runtime_dependency(%q<settingslogic>, [">= 2.0"])
|
101
|
-
s.add_runtime_dependency(%q<amazon-ec2>, [">= 0.9"])
|
102
|
-
s.add_runtime_dependency(%q<aws-s3>, [">= 0.5"])
|
103
|
-
s.add_runtime_dependency(%q<net-ssh>, [">= 2.0"])
|
104
|
-
s.add_runtime_dependency(%q<highline>, [">= 1.5.2"])
|
105
|
-
else
|
106
|
-
s.add_dependency(%q<trollop>, [">= 1.16"])
|
107
|
-
s.add_dependency(%q<i18n>, [">= 0.5.0"])
|
108
|
-
s.add_dependency(%q<activesupport>, [">= 3.0"])
|
109
|
-
s.add_dependency(%q<settingslogic>, [">= 2.0"])
|
110
|
-
s.add_dependency(%q<amazon-ec2>, [">= 0.9"])
|
111
|
-
s.add_dependency(%q<aws-s3>, [">= 0.5"])
|
112
|
-
s.add_dependency(%q<net-ssh>, [">= 2.0"])
|
113
|
-
s.add_dependency(%q<highline>, [">= 1.5.2"])
|
114
|
-
end
|
115
|
-
else
|
116
|
-
s.add_dependency(%q<trollop>, [">= 1.16"])
|
117
|
-
s.add_dependency(%q<i18n>, [">= 0.5.0"])
|
118
|
-
s.add_dependency(%q<activesupport>, [">= 3.0"])
|
119
|
-
s.add_dependency(%q<settingslogic>, [">= 2.0"])
|
120
|
-
s.add_dependency(%q<amazon-ec2>, [">= 0.9"])
|
121
|
-
s.add_dependency(%q<aws-s3>, [">= 0.5"])
|
122
|
-
s.add_dependency(%q<net-ssh>, [">= 2.0"])
|
123
|
-
s.add_dependency(%q<highline>, [">= 1.5.2"])
|
124
|
-
end
|
125
|
-
end
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
126
21
|
|
22
|
+
s.add_dependency 'trollop', '>= 1.16'
|
23
|
+
s.add_dependency 'i18n', '>= 0.5.0'
|
24
|
+
s.add_dependency 'activesupport', '>= 3.0'
|
25
|
+
s.add_dependency 'settingslogic', '>= 2.0'
|
26
|
+
s.add_dependency 'amazon-ec2', '>= 0.9'
|
27
|
+
s.add_dependency 'aws-s3', '>= 0.5'
|
28
|
+
s.add_dependency 'net-ssh', '>= 2.0'
|
29
|
+
s.add_dependency 'highline', '>= 1.5.2'
|
30
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: standup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 15
|
5
4
|
prerelease:
|
6
|
-
|
7
|
-
- 0
|
8
|
-
- 4
|
9
|
-
- 0
|
10
|
-
version: 0.4.0
|
5
|
+
version: 0.5.0
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Ilia Ablamonov
|
@@ -17,8 +12,8 @@ autorequire:
|
|
17
12
|
bindir: bin
|
18
13
|
cert_chain: []
|
19
14
|
|
20
|
-
date: 2011-
|
21
|
-
default_executable:
|
15
|
+
date: 2011-07-02 00:00:00 +04:00
|
16
|
+
default_executable:
|
22
17
|
dependencies:
|
23
18
|
- !ruby/object:Gem::Dependency
|
24
19
|
name: trollop
|
@@ -28,10 +23,6 @@ dependencies:
|
|
28
23
|
requirements:
|
29
24
|
- - ">="
|
30
25
|
- !ruby/object:Gem::Version
|
31
|
-
hash: 47
|
32
|
-
segments:
|
33
|
-
- 1
|
34
|
-
- 16
|
35
26
|
version: "1.16"
|
36
27
|
type: :runtime
|
37
28
|
version_requirements: *id001
|
@@ -43,11 +34,6 @@ dependencies:
|
|
43
34
|
requirements:
|
44
35
|
- - ">="
|
45
36
|
- !ruby/object:Gem::Version
|
46
|
-
hash: 11
|
47
|
-
segments:
|
48
|
-
- 0
|
49
|
-
- 5
|
50
|
-
- 0
|
51
37
|
version: 0.5.0
|
52
38
|
type: :runtime
|
53
39
|
version_requirements: *id002
|
@@ -59,10 +45,6 @@ dependencies:
|
|
59
45
|
requirements:
|
60
46
|
- - ">="
|
61
47
|
- !ruby/object:Gem::Version
|
62
|
-
hash: 7
|
63
|
-
segments:
|
64
|
-
- 3
|
65
|
-
- 0
|
66
48
|
version: "3.0"
|
67
49
|
type: :runtime
|
68
50
|
version_requirements: *id003
|
@@ -74,10 +56,6 @@ dependencies:
|
|
74
56
|
requirements:
|
75
57
|
- - ">="
|
76
58
|
- !ruby/object:Gem::Version
|
77
|
-
hash: 3
|
78
|
-
segments:
|
79
|
-
- 2
|
80
|
-
- 0
|
81
59
|
version: "2.0"
|
82
60
|
type: :runtime
|
83
61
|
version_requirements: *id004
|
@@ -89,10 +67,6 @@ dependencies:
|
|
89
67
|
requirements:
|
90
68
|
- - ">="
|
91
69
|
- !ruby/object:Gem::Version
|
92
|
-
hash: 25
|
93
|
-
segments:
|
94
|
-
- 0
|
95
|
-
- 9
|
96
70
|
version: "0.9"
|
97
71
|
type: :runtime
|
98
72
|
version_requirements: *id005
|
@@ -104,10 +78,6 @@ dependencies:
|
|
104
78
|
requirements:
|
105
79
|
- - ">="
|
106
80
|
- !ruby/object:Gem::Version
|
107
|
-
hash: 1
|
108
|
-
segments:
|
109
|
-
- 0
|
110
|
-
- 5
|
111
81
|
version: "0.5"
|
112
82
|
type: :runtime
|
113
83
|
version_requirements: *id006
|
@@ -119,10 +89,6 @@ dependencies:
|
|
119
89
|
requirements:
|
120
90
|
- - ">="
|
121
91
|
- !ruby/object:Gem::Version
|
122
|
-
hash: 3
|
123
|
-
segments:
|
124
|
-
- 2
|
125
|
-
- 0
|
126
92
|
version: "2.0"
|
127
93
|
type: :runtime
|
128
94
|
version_requirements: *id007
|
@@ -134,29 +100,26 @@ dependencies:
|
|
134
100
|
requirements:
|
135
101
|
- - ">="
|
136
102
|
- !ruby/object:Gem::Version
|
137
|
-
hash: 7
|
138
|
-
segments:
|
139
|
-
- 1
|
140
|
-
- 5
|
141
|
-
- 2
|
142
103
|
version: 1.5.2
|
143
104
|
type: :runtime
|
144
105
|
version_requirements: *id008
|
145
|
-
description:
|
146
|
-
email:
|
106
|
+
description: ""
|
107
|
+
email:
|
108
|
+
- ilia@flamefork.ru
|
109
|
+
- art.orlov@gmail.com
|
147
110
|
executables:
|
148
111
|
- standup
|
149
112
|
extensions: []
|
150
113
|
|
151
|
-
extra_rdoc_files:
|
152
|
-
|
153
|
-
- README.md
|
114
|
+
extra_rdoc_files: []
|
115
|
+
|
154
116
|
files:
|
117
|
+
- .gitignore
|
155
118
|
- .rvmrc
|
119
|
+
- Gemfile
|
156
120
|
- LICENSE
|
157
121
|
- README.md
|
158
122
|
- Rakefile
|
159
|
-
- VERSION
|
160
123
|
- bin/standup
|
161
124
|
- lib/standup.rb
|
162
125
|
- lib/standup/core_ext.rb
|
@@ -171,6 +134,7 @@ files:
|
|
171
134
|
- lib/standup/scripts/base.rb
|
172
135
|
- lib/standup/scripts/node.rb
|
173
136
|
- lib/standup/settings.rb
|
137
|
+
- lib/standup/version.rb
|
174
138
|
- scripts/allocate_ip.rb
|
175
139
|
- scripts/appconsole.rb
|
176
140
|
- scripts/basics.rb
|
@@ -178,6 +142,7 @@ files:
|
|
178
142
|
- scripts/browse.rb
|
179
143
|
- scripts/db_backup.rb
|
180
144
|
- scripts/delayed_job.rb
|
145
|
+
- scripts/delayed_job/delayed_job
|
181
146
|
- scripts/delayed_job/delayed_job_monit.conf
|
182
147
|
- scripts/download_db.rb
|
183
148
|
- scripts/ec2.rb
|
@@ -232,22 +197,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
232
197
|
requirements:
|
233
198
|
- - ">="
|
234
199
|
- !ruby/object:Gem::Version
|
235
|
-
hash: 3
|
236
|
-
segments:
|
237
|
-
- 0
|
238
200
|
version: "0"
|
239
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
240
202
|
none: false
|
241
203
|
requirements:
|
242
204
|
- - ">="
|
243
205
|
- !ruby/object:Gem::Version
|
244
|
-
hash: 3
|
245
|
-
segments:
|
246
|
-
- 0
|
247
206
|
version: "0"
|
248
207
|
requirements: []
|
249
208
|
|
250
|
-
rubyforge_project:
|
209
|
+
rubyforge_project: standup
|
251
210
|
rubygems_version: 1.6.2
|
252
211
|
signing_key:
|
253
212
|
specification_version: 3
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.4.0
|