From 956e1fcfe34e08df9595175afc01ffe48b03d62e Mon Sep 17 00:00:00 2001 From: John Bintz Date: Tue, 27 Nov 2012 14:12:09 -0500 Subject: [PATCH] add some things --- lib/cap-pack.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/lib/cap-pack.rb b/lib/cap-pack.rb index 506642a..29a5cd1 100644 --- a/lib/cap-pack.rb +++ b/lib/cap-pack.rb @@ -13,6 +13,24 @@ Capistrano::Configuration.instance.load do ENV['HOST'] || find_servers_for_task(current_task).first end + def switch_user(new_user) + old_user = user + set :user, new_user + close_sessions + yield + set :user, old_user + close_sessions + end + + def close_sessions + sessions.values.each { |session| session.close } + sessions.clear + end + + def rake(cmd, env = {}) + run "cd #{latest_release} && RAILS_ENV=#{rails_env} #{env.collect { |k, v| "#{k}=#{v}" }.join(' ')} bundle exec rake #{cmd}" + end + Dir[File.expand_path('../cap-pack/recipes/**/*.rb', __FILE__)].each { |f| load f } end