2012-06-08 19:39:24 +00:00
|
|
|
Capistrano::Configuration.instance.load do
|
|
|
|
_cset(:user_shell_method) { %{bash -l -c} }
|
|
|
|
|
|
|
|
def tty_ssh_command_in_current_host(command, hostname = current_host)
|
|
|
|
user_ssh_command = fetch(:user, nil) ? "-l #{fetch(:user)}" : ''
|
|
|
|
|
2012-06-27 13:47:49 +00:00
|
|
|
user_ssh_command << " #{ENV['SSH_OPTS']}" if ENV['SSH_OPTS']
|
|
|
|
|
2012-06-08 21:08:03 +00:00
|
|
|
exec %{ssh #{user_ssh_command} #{hostname} -t "#{user_shell_method} 'cd #{current_path} && #{command}'"}
|
2012-06-08 19:39:24 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def current_host
|
2012-11-20 20:33:50 +00:00
|
|
|
ENV['HOST'] || find_servers_for_task(current_task).first
|
2012-06-08 19:39:24 +00:00
|
|
|
end
|
|
|
|
|
2012-11-27 19:12:09 +00:00
|
|
|
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
|
|
|
|
|
2012-06-08 19:39:24 +00:00
|
|
|
Dir[File.expand_path('../cap-pack/recipes/**/*.rb', __FILE__)].each { |f| load f }
|
|
|
|
end
|
|
|
|
|