public
Description: OneBody is web-based software that connects community members, especially churches, on the web.
Homepage: http://beonebody.com
Clone URL: git://github.com/seven1m/onebody.git
Reorder tasks in cap recipe so that all dependencies are met.
Tim Morgan (author)
Mon Aug 18 21:52:13 -0700 2008
commit  3174e2e31ab5047f468349f9020ed877cb6ac767
tree    78dbd17858308435bf04c0305631f079c6ba716a
parent  7c75f2a2ef84e8d25d9105134314a47bd0ef812e
...
80
81
82
83
 
84
85
86
...
98
99
100
 
 
 
 
 
 
 
101
102
103
...
80
81
82
 
83
84
85
86
...
98
99
100
101
102
103
104
105
106
107
108
109
110
0
@@ -80,7 +80,7 @@ namespace :deploy do
0
       sudo 'aptitude update'
0
       sudo 'aptitude install -y mysql-server libmysql-ruby1.8'
0
       password = HighLine.new.ask('Password for MySQL root user: ') { |q| q.echo = false }
0
-      run 'mysqladmin -uroot password #{password}'
0
+      run "mysqladmin -uroot password \"#{password}\""
0
     end
0
     
0
     desc 'Install Postfix'
0
@@ -98,6 +98,13 @@ namespace :deploy do
0
       sudo "ruby -e \"d=File.read('/etc/network/interfaces'); exit if d =~ /iptables/; d.gsub!(/(iface lo inet loopback)(\\n)/, '\\1\\2pre-up iptables-restore < /etc/iptables.up.rules\\2'); File.open('/etc/network/interfaces', 'w') { |f| f.write(d) }\""
0
       puts 'Restart the server for the config to take effect.'
0
     end
0
+    
0
+    desc 'Install gem dependencies'
0
+    task :dependencies, :roles => :web do
0
+      sudo 'echo'
0
+      run "cd #{release_path}; sudo rake gems:install"
0
+    end
0
+    after 'deploy:update_code', 'deploy:install:dependencies'
0
 
0
   end
0
 end
...
22
23
24
25
26
27
28
 
 
 
29
30
31
 
32
33
34
...
36
37
38
 
 
 
 
 
 
39
40
...
22
23
24
 
 
 
 
25
26
27
28
29
30
31
32
33
34
...
36
37
38
39
40
41
42
43
44
45
46
0
@@ -22,13 +22,13 @@ namespace :deploy do
0
     
0
   end
0
   
0
-  task :after_setup do
0
-    run "cd #{release_path}"
0
-    sudo "rake gems:install"
0
-    run "mysql -u root -e \"create database onebody; grant all on onebody.* to onebody@localhost identified by '#{get_db_password}'\""
0
+  task :create_database do
0
+    mysql_root_password = HighLine.new.ask('MySQL ROOT password: ') { |q| q.echo = false }
0
+    run "mysql -uroot -p#{mysql_root_password} -e \"create database onebody; grant all on onebody.* to onebody@localhost identified by '#{get_db_password}'\""
0
     yml = render_erb_template(File.dirname(__FILE__) + '/templates/database.yml')
0
     put yml, "#{shared_path}/config/database.yml"
0
   end
0
+  after 'deploy:setup', 'deploy:create_database'
0
   
0
   task :after_update_code do
0
     rb = render_erb_template(File.dirname(__FILE__) + '/templates/links.rb')
0
@@ -36,5 +36,11 @@ namespace :deploy do
0
     run "cp -r #{release_path}/public/* #{shared_path}/public/"
0
     run "ln -sf #{shared_path}/config/database.yml #{release_path}/config/database.yml"
0
   end
0
+  
0
+  task :copy_ssh_key do
0
+    run "mkdir -p ~/.ssh"
0
+    pubkey = File.read(ENV['HOME'] + '/.ssh/id_rsa.pub')
0
+    run "echo #{pubkey} >> ~/.ssh/authorized_keys"
0
+  end
0
 
0
 end

Comments