我必须将cd #{deploy_to}/current
和raise_on_non_zero_exit: false
放在许多任务中。闻起来很糟糕。
是否有任何内置函数可以让我缩短我的陈述?
namespace :foreman do
task :export do
on roles(:web) do |host|
execute %Q( cd #{deploy_to}/current && sudo foreman export upstart /etc/init -a #{ENV['APP_NAME']} -u #{ENV['DEPLOYER']} -l /var/#{ENV['APP_NAME']}/log )
end
end
task :start do
on roles(:web) do |host|
execute "cd #{deploy_to}/current && sudo start #{ENV['APP_NAME']} ", raise_on_non_zero_exit: false
end
end
task :stop do
on roles(:web) do |host|
execute "cd #{deploy_to}/current && sudo stop #{ENV['APP_NAME']} ", raise_on_non_zero_exit: false
end
end
end # foreman
答案 0 :(得分:1)
你可以在'helper'中使用capistranos来整理一下这个,以及在你自己的帮助方法中包含加注吗?
within current_path do
execute_without_fail "..."
end
def execute_without_fail cmd
execute cmd, raise_on_non_zero_exit: false
end