engineyard-eycap 0.3.11 → 0.4.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/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.4.0 / 2009-01-09
2
+ * add passenger:restart task
3
+ * add apache stop, start, restart and reload tasks
4
+ * Don't display database passwords in the logs, output, etc. use stdin instead
5
+
1
6
  == 0.3.11 / 2008-11-09
2
7
  * filtered_remote_cache uses svn switch
3
8
 
data/Manifest.txt CHANGED
@@ -21,5 +21,7 @@ lib/eycap/recipes/solr.rb
21
21
  lib/eycap/recipes/sphinx.rb
22
22
  lib/eycap/recipes/templates/maintenance.rhtml
23
23
  lib/eycap/recipes/tomcat.rb
24
+ lib/eycap/recipes/passenger.rb
25
+ lib/eycap/recipes/apache.rb
24
26
  test/test_eycap.rb
25
27
  test/test_helper.rb
data/README.txt CHANGED
@@ -17,7 +17,7 @@ Also included is a deployment strategy, :filtered_remote_cache, which speeds up
17
17
 
18
18
  == SOURCE:
19
19
 
20
- eycaps git repo is available on GitHub, which can be browsed at:
20
+ eycap's git repo is available on GitHub, which can be browsed at:
21
21
 
22
22
  http://github.com/engineyard/eycap
23
23
 
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ Hoe.new('eycap', Eycap::VERSION) do |p|
7
7
  p.email = 'tech@engineyard.com'
8
8
  p.summary = 'Capistrano tasks for Engine Yard slices'
9
9
  p.description = 'A bunch of useful recipes to help deployment to Engine Yard slices'
10
- p.url = 'http://eycap.rubyforge.org'
10
+ p.url = 'http://github.com/engineyard/eycap/tree/master'
11
11
  p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
12
12
  p.extra_deps << ['capistrano', '>= 2.2.0']
13
13
  end
data/lib/eycap.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Eycap
2
- VERSION = '0.3.11'
2
+ VERSION = '0.4.0'
3
3
  end
data/lib/eycap/recipes.rb CHANGED
@@ -13,6 +13,8 @@ require 'eycap/recipes/solr'
13
13
  require 'eycap/recipes/monit'
14
14
  require 'eycap/recipes/tomcat'
15
15
  require 'eycap/recipes/juggernaut'
16
+ require 'eycap/recipes/passenger'
17
+ require 'eycap/recipes/apache'
16
18
 
17
19
  Capistrano::Configuration.instance(:must_exist).load do
18
20
 
@@ -0,0 +1,10 @@
1
+ Capistrano::Configuration.instance(:must_exist).load do
2
+ namespace :apache do
3
+ [:stop, :start, :restart, :reload].each do |action|
4
+ desc "#{action.to_s.capitalize} Apache"
5
+ task action, :roles => :web do
6
+ sudo "/etc/init.d/apache2 #{action.to_s}"
7
+ end
8
+ end
9
+ end
10
+ end
@@ -14,11 +14,19 @@ Capistrano::Configuration.instance(:must_exist).load do
14
14
  on_rollback { run "rm -f #{backup_file}" }
15
15
  run("cat #{shared_path}/config/database.yml") { |channel, stream, data| @environment_info = YAML.load(data)[rails_env] }
16
16
  if @environment_info['adapter'] == 'mysql'
17
- run "mysqldump --add-drop-table -u #{dbuser} -h #{production_dbhost.gsub('-master', '-replica')} -p#{dbpass} #{production_database} > #{backup_file}"
18
- run "mysql -u #{dbuser} -p#{dbpass} -h #{staging_dbhost} #{staging_database} < #{backup_file}"
17
+ run "mysqldump --add-drop-table -u #{dbuser} -h #{production_dbhost.gsub('-master', '-replica')} #{production_database} -p > #{backup_file}" do |ch, stream, out|
18
+ ch.send_data "#{dbpass}\n" if out=~ /^Enter password:/
19
+ end
20
+ run "mysql -u #{dbuser} -p -h #{staging_dbhost} #{staging_database} < #{backup_file}" do |ch, stream, out|
21
+ ch.send_data "#{dbpass}\n" if out=~ /^Enter password:/
22
+ end
19
23
  else
20
- run "PGPASSWORD=#{dbpass} pg_dump -c -U #{dbuser} -h #{production_dbhost} -f #{backup_file} #{production_database}"
21
- run "PGPASSWORD=#{dbpass} psql -U #{dbuser} -h #{staging_dbhost} -f #{backup_file} #{staging_database}"
24
+ run "pg_dump -W -c -U #{dbuser} -h #{production_dbhost} -f #{backup_file} #{production_database}" do |ch, stream, out|
25
+ ch.send_data "#{dbpass}\n" if out=~ /^Password:/
26
+ end
27
+ run "psql -W -U #{dbuser} -h #{staging_dbhost} -f #{backup_file} #{staging_database}" do |ch, stream, out|
28
+ ch.send_data "#{dbpass}\n" if out=~ /^Password:/
29
+ end
22
30
  end
23
31
  run "rm -f #{backup_file}"
24
32
  end
@@ -28,9 +36,13 @@ Capistrano::Configuration.instance(:must_exist).load do
28
36
  backup_name
29
37
  run("cat #{shared_path}/config/database.yml") { |channel, stream, data| @environment_info = YAML.load(data)[rails_env] }
30
38
  if @environment_info['adapter'] == 'mysql'
31
- run "mysqldump --add-drop-table -u #{dbuser} -h #{environment_dbhost.gsub('-master', '-replica')} -p#{dbpass} #{environment_database} | bzip2 -c > #{backup_file}.bz2"
39
+ run "mysqldump --add-drop-table -u #{dbuser} -h #{environment_dbhost.gsub('-master', '-replica')} -p #{environment_database} | bzip2 -c > #{backup_file}.bz2" do |ch, stream, out |
40
+ ch.send_data "#{dbpass}\n" if out=~ /^Enter password:/
41
+ end
32
42
  else
33
- run "PGPASSWORD=#{dbpass} pg_dump -c -U #{dbuser} -h #{environment_dbhost} #{environment_database} | bzip2 -c > #{backup_file}.bz2"
43
+ run "pg_dump -W -c -U #{dbuser} -h #{environment_dbhost} #{environment_database} | bzip2 -c > #{backup_file}.bz2" do |ch, stream, out |
44
+ ch.send_data "#{dbpass}\n" if out=~ /^Password:/
45
+ end
34
46
  end
35
47
  end
36
48
 
@@ -41,11 +53,14 @@ Capistrano::Configuration.instance(:must_exist).load do
41
53
  get "#{backup_file}.bz2", "/tmp/#{application}.sql.gz"
42
54
  development_info = YAML.load_file("config/database.yml")['development']
43
55
  if development_info['adapter'] == 'mysql'
44
- run_str = "bzcat /tmp/#{application}.sql.gz | mysql -u #{development_info['username']} -p#{development_info['password']} -h #{development_info['host']} #{development_info['database']}"
56
+ run "bzcat /tmp/#{application}.sql.gz | mysql -u #{development_info['username']} -p -h #{development_info['host']} #{development_info['database']}" do |ch, stream, out |
57
+ ch.send_data "#{development_info['password']}\n" if out=~ /Enter password:/
58
+ end
45
59
  else
46
- run_str = "PGPASSWORD=#{development_info['password']} bzcat /tmp/#{application}.sql.gz | psql -U #{development_info['username']} -h #{development_info['host']} #{development_info['database']}"
60
+ run "bzcat /tmp/#{application}.sql.gz | psql -W -U #{development_info['username']} -h #{development_info['host']} #{development_info['database']}" do |ch, stream, out |
61
+ ch.send_data "#{development_info['password']}\n" if out=~ /^Password:/
62
+ end
47
63
  end
48
- %x!#{run_str}!
49
64
  end
50
65
  end
51
66
 
@@ -0,0 +1,10 @@
1
+ Capistrano::Configuration.instance(:must_exist).load do
2
+ namespace :passenger do
3
+ desc <<-DESC
4
+ Restart the passenger module to reload the application after deploying.
5
+ DESC
6
+ task :restart, :roles => [:app], :except => {:no_release => true} do
7
+ sudo "touch #{current_path}/tmp/restart.txt"
8
+ end
9
+ end
10
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engineyard-eycap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.11
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Engine Yard
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-09-22 00:00:00 -07:00
12
+ date: 2009-01-09 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -59,15 +59,17 @@ files:
59
59
  - lib/eycap/recipes/mongrel.rb
60
60
  - lib/eycap/recipes/monit.rb
61
61
  - lib/eycap/recipes/nginx.rb
62
+ - lib/eycap/recipes/passenger.rb
62
63
  - lib/eycap/recipes/slice.rb
63
64
  - lib/eycap/recipes/solr.rb
64
65
  - lib/eycap/recipes/sphinx.rb
65
66
  - lib/eycap/recipes/templates/maintenance.rhtml
66
67
  - lib/eycap/recipes/tomcat.rb
68
+ - lib/eycap/recipes/apache.rb
67
69
  - test/test_eycap.rb
68
70
  - test/test_helper.rb
69
71
  has_rdoc: true
70
- homepage: http://eycap.rubyforge.org
72
+ homepage: http://github.com/engineyard/eycap/tree/master
71
73
  post_install_message:
72
74
  rdoc_options:
73
75
  - --main