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 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