role :root, "yourdomain.com" namespace :drupal namespace :install do desc "Installs a given theme to your drupal site" task :theme do set(:path) do Capistrano::CLI.ui.ask "Module path: " end theme_folder_path = "/var/www/drupal/sites/all/themes/" filename = path.split('/').last run "curl -O #{path}" run "mv #{filename} #{theme_folder_path}" run "cd #{theme_folder_path} && tar -xzvf #{filename}" run "rm #{theme_folder_path}#{filename}" end desc "Installs a given module to your drupal site" task :module do set(:path) do Capistrano::CLI.ui.ask "Module path: " end module_folder_path = "/var/www/drupal/sites/all/module/" filename = path.split('/').last run "curl -O #{path}" run "mv #{filename} #{theme_folder_path}" run "cd #{theme_folder_path} && tar -xzvf #{filename}" run "rm #{theme_folder_path}#{filename}" end desc "Adds a new site to an existing drupal install" task :site do set(:site_url) do Capistrano::CLI.ui.ask "New Site Url (excluding http://): " end set(:root_db_user) do Capistrano::CLI.ui.ask "Database root username: " end set(:root_db_password) do Capistrano::CLI.password_prompt "Database root password: " end set(:site_db_name) do Capistrano::CLI.ui.ask "New Site Database Name: " end set(:site_db_user_name) do Capistrano::CLI.ui.ask "New Site Database User Name: " end set(:site_db_user_password) do Capistrano::CLI.password_prompt "New Site Database User Password: " end sql = <<-SQL create database #{site_db_name}; GRANT ALL PRIVILEGES ON #{site_db_name}.* TO #{site_db_user_name}@localhost IDENTIFIED BY '#{site_db_user_password}'; SQL run "mysql -u #{root_db_user} -p#{root_db_password} <<< \"#{sql}\"" run "mkdir /var/www/drupal/sites/#{site_url}" run "cp /var/www/drupal/sites/default/settings.php /var/www/drupal/sites/#{site_url}/settings_old.php" run "sed '/\\*/!s/$db_url\\ =\\ .*/$db_url\\ =\\ \\\"mysqli:\\/\\/#{site_db_user_name}:#{site_db_user_password}@localhost\\/#{site_db_name}\\\";/g' /var/www/drupal/sites/#{site_url}/settings_old.php > /var/www/drupal/sites/#{site_url}/settings.php" run "rm /var/www/drupal/sites/#{site_url}/settings_old.php" end end end