Report abuse


			
# Reusable recipes
set :asset_folders, %W(images files)

namespace :deploy do
  desc "Link the asset folders from the shared folder into our site"
  task :finalize_update, :except => { :no_release => true } do
    logger.info 'finalizing update with custom method'
    run "chmod -R g+w #{latest_release}" if fetch(:group_writable, true)

    asset_folders.each do |asset|
      run "rm -rf #{release_path}/#{asset}"
      run "ln -nfs #{shared_path}/#{asset} #{release_path}/#{asset}"
    end
  end

  desc "Set up the expected application directory structure on all boxes"
  task :setup, :except => { :no_release => true } do
    run <<-CMD
      umask 02 &&
      mkdir -p #{deploy_to} #{releases_path} #{shared_path}
    CMD
    asset_folders.each do |asset|
      run "rm -rf #{release_path}/#{asset}"
      run "ln -nfs #{shared_path}/#{asset} #{release_path}/#{asset}"
    end
  end

  task :set_permissions, :except => { :no_release => true } do
    # do nothing
  end

  task :restart do
   # do nothing 
  end
end

namespace :drupal do
  desc <<-DESC
  Grab the specified version of drupal and install it

  This presumes that the variables drupal_version and drupal_path have been set
  DESC

  task :install do
    run "cd #{shared_path} && curl -O http://ftp.drupal.org/files/projects/drupal-#{drupal_version}.tar.gz"
    run "cd #{shared_path} && tar xzvf drupal-#{drupal_version}.tar.gz"
    run "rm -rf #{shared_path}/drupal-#{drupal_version}/sites"
    run "cd #{drupal_path} && rm -rf !(sites)"
    run "mv #{shared_path}/drupal-#{drupal_version}/* #{drupal_path}"
    run "mv #{shared_path}/drupal-#{drupal_version}/.htaccess #{drupal_path}/.htaccess"
    run "rm -rf #{shared_path}/drupal-#{drupal_version}"
  end
end

after "deploy:setup", "drupal:install"

set :drupal_path, File.join(deploy_to, '../')

# You should only need to change the details below this line

set :drupal_version, "5.8" # Or whatever version you want to install
set :deploy_to, '/path/to/your/drupal/sites'
set :site_name, 'staging.scodigo.com' # The domain name of your app
role :web, "your.server.com"
set :repository, "svn://your.svn.com/path/to/repos/trunk"

# You probably won't need to change this piece

set :current_path, "#{deploy_to}/#{site_name}"
set :shared_path, "#{deploy_to}/shared/#{site_name}"