<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/cap.rb</filename>
    </added>
    <added>
      <filename>lib/recipes/scheduler.rb</filename>
    </added>
    <added>
      <filename>lib/recipes/setup_mode.rb</filename>
    </added>
    <added>
      <filename>lib/recipes/spin.rb</filename>
    </added>
    <added>
      <filename>lib/recipes/templates/database.yml</filename>
    </added>
    <added>
      <filename>lib/recipes/templates/links.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -2,3 +2,4 @@ load 'deploy' if respond_to?(:namespace) # cap2 differentiator
 Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
 Dir['lib/recipes/*.rb'].each { |recipe| load(recipe) }
 load 'config/deploy'
+load 'lib/cap'</diff>
      <filename>Capfile</filename>
    </modified>
    <modified>
      <diff>@@ -12,7 +12,6 @@
 set :host, 'beonebody.org'
 
 # if you have multiple servers, point these individually
-role :app, host
 role :web, host
 role :db,  host, :primary =&gt; true
 </diff>
      <filename>config/deploy.rb.example</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,6 @@ namespace :deploy do
       ruby
       passenger
       db_server
-      mysql
     end
     
     desc 'Install server software, including Ruby Enterprise Edition'
@@ -17,12 +16,11 @@ namespace :deploy do
       ree
       passenger
       db_server
-      mysql
     end
     
     task :prerequisites do
       sudo 'aptitude update'
-      sudo 'aptitude install -y build-essential ruby1.8 imagemagick apache2 apache2-dev apache2-mpm-prefork'
+      sudo 'aptitude install -y build-essential ruby1.8 imagemagick apache2 apache2-dev apache2-mpm-prefork apache2-prefork-dev git-core'
     end
     
     task :ruby, :roles =&gt; :web do
@@ -35,8 +33,11 @@ namespace :deploy do
         sudo 'ln -sf /usr/bin/gem1.8 /usr/bin/gem'
       end
       sudo 'gem update --system'
+      sudo 'gem install rails --no-rdoc --no-ri'
     end
     
+    # desc 'Install Ruby Enterprise Edition in place of MRI.'
+    # This probably needs some work.
     task :ree, :roles =&gt; :web do
       ree_file = REE_PATH.split('/').last
       ree_dir = ree_file.gsub(/\.tar\.gz$/, '')
@@ -80,11 +81,6 @@ namespace :deploy do
       sudo 'aptitude update'
       sudo 'aptitude install -y mysql-server'
     end
-    
-    # TODO: move this out of :install namespace
-    task :mysql, :roles =&gt; :db do
-      db_password = Highline.ask('Password to use for the &quot;onebody&quot; MySQL user: ')
-      run &quot;mysql -u root -e \&quot;create database onebody; grant all on onebody.* to onebody identified by '#{db_password}'\&quot;&quot;
-    end
+
   end
 end</diff>
      <filename>lib/recipes/install.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,24 +1,74 @@
 namespace :deploy do
+
+  task :before_setup do
+    sudo &quot;mkdir -p #{deploy_to}&quot;
+    sudo &quot;chown #{user}:#{user} #{deploy_to}&quot;
+  end
+  
+  namespace :shared do
   
-  namespace :setup_mode do
+    # TODO: move this task to another namespace
+    task :update_rails do
+      rails_version = File.read(File.dirname(__FILE__) + '/../../config/environment.rb').match(/RAILS_GEM_VERSION = '(.+?)'/)[1]
+      unless run_and_return('gem list rails') =~ Regexp.new(rails_version)
+        sudo &quot;gem install -v=#{rails_version} rails --no-rdoc --no-ri&quot;
+      end
+    end
+    after 'deploy:update_code', 'deploy:shared:update_rails'
     
-    desc 'Starts a OneBody in setup mode on port 7999 (by default).'
-    task :start, :roles =&gt; :app do
-      run &quot;cd #{current_path} &amp;&amp; script/server -d -e setup -p #{fetch(:setup_port, 7999)}&quot;
+    task :setup do
+      run &quot;mkdir -p #{shared_path}/db/photos/families&quot;
+      run &quot;mkdir -p #{shared_path}/db/photos/groups&quot;
+      run &quot;mkdir -p #{shared_path}/db/photos/people&quot;
+      run &quot;mkdir -p #{shared_path}/db/photos/pictures&quot;
+      run &quot;mkdir -p #{shared_path}/db/photos/recipes&quot;
+      run &quot;mkdir -p #{shared_path}/db/publications&quot;
+      run &quot;mkdir -p #{shared_path}/db/attachments&quot;
+      run &quot;mkdir -p #{shared_path}/db/tasks&quot;
+      run &quot;mkdir -p #{shared_path}/config&quot;
+      run &quot;mkdir -p #{shared_path}/public&quot;
+      run &quot;mkdir -p #{shared_path}/themes&quot;
     end
+    after 'deploy:setup', 'deploy:shared:setup'
+
+    task :mysql, :roles =&gt; :db do
+      run &quot;mysql -u root -e \&quot;create database onebody; grant all on onebody.* to onebody@localhost identified by '#{db_password}'\&quot;&quot;
+      yml = render_erb_template(File.dirname(__FILE__) + '/templates/database.yml')
+      put yml, &quot;#{shared_path}/config/database.yml&quot;
+    end
+    after 'deploy:shared:setup', 'deploy:shared:mysql'
     
-    desc 'Stops setup mode.'
-    task :stop, :roles =&gt; :app do
-      pid = run_and_return(&quot;ps aux | grep '[r]uby script/server webrick -d -e setup'&quot;).split[1]
-      run &quot;kill -HUP #{pid}&quot;
+    task :point_db_dirs do
+      rb = render_erb_template(File.dirname(__FILE__) + '/templates/links.rb')
+      put rb, &quot;#{release_path}/config/initializers/links.rb&quot;
     end
+    after 'deploy:update_code', 'deploy:shared:point_db_dirs'
     
-    desc 'Retrieves the setup mode authorization secret.'
-    task :secret, :roles =&gt; :app do
-      puts &quot;\nThe setup secret is:&quot;
-      puts run_and_return(&quot;cat #{current_path}/setup-secret&quot;)
+    task :update_public_files do
+      run &quot;cp -r #{release_path}/public/* #{shared_path}/public/&quot;
+    end
+    after 'deploy:update_code', 'deploy:shared:update_public_files'
+
+    task :update_tasks do
+      run &quot;cp -r #{release_path}/db/tasks/* #{shared_path}/db/tasks/&quot;
     end
+    after 'deploy:shared:update_public_files', 'deploy:shared:update_tasks'
     
+    task :create_symlinks do
+      %w(config/database.yml public).each do |file|
+        run &quot;rm -rf #{release_path}/#{file}&quot;
+        run &quot;ln -s #{shared_path}/#{file} #{release_path}/#{file}&quot;
+      end
+    end
+    after 'deploy:shared:update_tasks', 'deploy:shared:create_symlinks'
+    
+    # TODO: move this task to another namespace
+    task :update_dependencies do
+      run &quot;cd #{release_path} &amp;&amp; sudo rake gems:install&quot;
+    end
+    after 'deploy:shared:create_symlinks', 'deploy:shared:update_dependencies'
+
   end
-  
+
+
 end</diff>
      <filename>lib/recipes/setup.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>vendor/plugins/onebody_deploy/README.textile</filename>
    </removed>
    <removed>
      <filename>vendor/plugins/onebody_deploy/recipes/onebody.rb</filename>
    </removed>
    <removed>
      <filename>vendor/plugins/onebody_deploy/recipes/templates/database.yml</filename>
    </removed>
    <removed>
      <filename>vendor/plugins/onebody_deploy/recipes/templates/links.rb</filename>
    </removed>
    <removed>
      <filename>vendor/plugins/onebody_deploy/recipes/templates/maintenance.rhtml</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>d9b842b184c1dc08e68fb8728e384feba100488f</id>
    </parent>
  </parents>
  <author>
    <name>Tim Morgan</name>
    <email>tim@timmorgan.org</email>
  </author>
  <url>http://github.com/seven1m/onebody/commit/2112f3d941e0a083d84bdfdf5e2933d99bedc804</url>
  <id>2112f3d941e0a083d84bdfdf5e2933d99bedc804</id>
  <committed-date>2008-06-25T22:10:20-07:00</committed-date>
  <authored-date>2008-06-25T22:10:20-07:00</authored-date>
  <message>Improved deployment recipes.</message>
  <tree>58158c92100aca812e51a4b5e07a11e6f07cb97c</tree>
  <committer>
    <name>Tim Morgan</name>
    <email>tim@timmorgan.org</email>
  </committer>
</commit>
