standup 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ .DS_Store
2
+ .idea
3
+ *.gem
4
+ .bundle
5
+ Gemfile.lock
6
+ pkg/*
data/.rvmrc CHANGED
@@ -1,2 +1,2 @@
1
- rvm ree
1
+ rvm 1.9.2
2
2
 
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in standup.gemspec
4
+ gemspec
data/README.md CHANGED
@@ -92,6 +92,7 @@ For example, if you want to add `rescue` to your configuration, you need to:
92
92
 
93
93
  - **?** Script sequences: rework default script as script sequence
94
94
 
95
+
95
96
  ## Copyright
96
97
 
97
98
  Copyright (c) 2010 Ilia Ablamonov, Cloud Castle Inc.
data/Rakefile CHANGED
@@ -1,29 +1,2 @@
1
- require 'rubygems'
2
- require 'rake'
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
@@ -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
- @path = nil
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 in_dir path
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
- old_path = @path
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 exec command
65
- command = @path ? "cd #{@path} && #{command}" : command
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
- exec "sudo #{command}"
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
- sudo "-u #{user} #{command}"
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
@@ -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, :exec, :sudo, :su_exec, :in_dir, :in_temp_dir, :file_exists?, :install_package, :install_packages, :install_gem, :update_cron,
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
@@ -0,0 +1,7 @@
1
+ module Standup
2
+ VERSION = "0.5.0"
3
+
4
+ def self.version
5
+ VERSION
6
+ end
7
+ end
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
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
4
+ require 'delayed/command'
5
+ Delayed::Command.new(ARGV).daemonize
@@ -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
@@ -11,10 +11,12 @@ ec2:
11
11
  image_id: ami-480df921 # Canonical Ubuntu 10.04, EBS boot, i386
12
12
  instance_type: m1.small
13
13
  ssh_user: ubuntu
14
+
14
15
  webapp:
15
16
  name:
16
17
  github_user:
17
18
  github_repo:
19
+ bootstrap_db: true
18
20
 
19
21
  # Nodes and their script params
20
22
  nodes:
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.4') || !file_exists?('/opt/nginx/sbin/nginx')
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
- def run
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
- in_dir "#{scripts.webapp.app_path}/resque" do
12
- sudo "rake redis:install"
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
- upload script_file('redis-server'),
26
- :to => '/etc/init.d/redis-server',
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 restart
42
- scripts.monit.restart_watch 'redis'
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 exec('ruby -v') =~ /Ruby Enterprise Edition 2010.02/
3
+ return if remoting.rvm_installed?
4
4
 
5
- in_temp_dir do
6
- arch64 = instance.architecture =~ /64/
7
- filename = "ruby-enterprise_1.8.7-2010.02_#{arch64 ? 'amd64' : 'i386'}_ubuntu10.04.deb"
8
- exec "wget -q http://rubyforge.org/frs/download.php/#{arch64 ? '71098' : '71100'}/#{filename}"
9
- sudo "dpkg -i #{filename}"
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 working application'
2
+ self.description = 'Update web application'
3
3
 
4
4
  def run
5
- in_dir scripts.webapp.app_path do
5
+ in_dir scripts.webapp.project_path do
6
6
  sudo 'chown -R ubuntu:ubuntu .'
7
-
8
- pull_changes
9
-
10
- update_webapp
11
-
12
- sudo 'chown -R www-data:www-data .'
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
- sudo "RAILS_ENV=#{scripts.webapp.params.rails_env} rake db:migrate"
29
- end
30
-
31
- def restart_webapp
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 => 'false'
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? app_path
16
- sudo "mkdir -p #{app_path}"
16
+ unless file_exists? project_path
17
+ sudo "mkdir -p #{project_path}"
17
18
  end
18
19
 
19
- sudo "chown -R ubuntu:ubuntu #{app_path}"
20
+ sudo "chown -R ubuntu:ubuntu #{project_path}"
20
21
 
21
22
  ensure_github_access
22
23
 
23
- unless file_exists? "#{app_path}/.git"
24
- exec "rm -rf #{app_path}/*"
25
- exec "git clone git@github.com:#{github_repo}.git #{app_path}"
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
- install_gems
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 app_path
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
- in_dir app_path do
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 under_user command
84
- sudo %Q{su -l www-data --command "cd #{app_path} && #{command}"}
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 gem_under_user command
88
- under_user "RAILS_ENV=#{params.rails_env} bundle exec #{command}"
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
- password = bright_ask("Enter GitGub password for user #{params.github_user}:", false)
101
-
102
- github_add_deploy_key params.github_user,
103
- password,
104
- github_repo,
105
- exec('hostname').strip,
106
- exec('cat ~/.ssh/id_rsa.pub').strip
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
- in_dir app_path do
112
- exec "RAILS_ENV=#{params.rails_env} rake db:schema:load"
113
- exec "RAILS_ENV=#{params.rails_env} rake db:seed"
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 = %q{standup}
8
- s.version = "0.4.0"
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.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
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
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
97
- s.add_runtime_dependency(%q<trollop>, [">= 1.16"])
98
- s.add_runtime_dependency(%q<i18n>, [">= 0.5.0"])
99
- s.add_runtime_dependency(%q<activesupport>, [">= 3.0"])
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
- segments:
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-06-02 00:00:00 +04:00
21
- default_executable: standup
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: ilia@flamefork.ru
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
- - LICENSE
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