Skip to content

Instantly share code, notes, and snippets.

@mfilej
Created August 25, 2008 12:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mfilej/7068 to your computer and use it in GitHub Desktop.
Save mfilej/7068 to your computer and use it in GitHub Desktop.
deploying a merb app with vlad (http://is.gd/1ToW)
require 'vlad'
set :application, "applicationname"
set :domain, "yourserver.com"
set :deploy_to, "/path/to/deploy"
set :repository, 'git://github.com/kneath/greed.git'
namespace :vlad do
##
# Merb app server
set :merb_address, "127.0.0.1"
set :merb_clean, false
set :merb_command, 'merb'
set :merb_conf, nil
set :merb_extra_config, nil
set :merb_environment, "production"
set :merb_group, nil
set :merb_port, 4000
set :merb_prefix, nil
set :merb_servers, 1
set :merb_user, nil
desc "Prepares application servers for deployment. merb
configuration is set via the merb_* variables.".cleanup
remote_task :setup_app, :roles => :app do
"rake"
end
def merb(cmd) # :nodoc:
"cd #{current_path} && #{merb_command} -p #{merb_port} -c #{merb_servers} -e #{merb_environment} #{cmd}"
end
desc "Restart the app servers"
remote_task :start_app, :roles => :app do
run merb('')
end
remote_task :start_app => :stop_app
desc "Stop the app servers"
remote_task :stop_app, :roles => :app do
run merb("-K all")
end
remote_task :migrate_merb, :roles => :db do
run "cd #{current_release}; rake db:migrate MERB_ENV=#{merb_environment}"
end
task :update do
run "cp #{shared_path}/database.yml #{current_path}/config/database.yml"
end
end
task :deploy => ["vlad:update", "vlad:migrate_merb", "vlad:start_app"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment