我怎么能缩短capistrano的陈述

时间:2015-12-15 06:49:37

标签: ruby capistrano

我必须将cd #{deploy_to}/currentraise_on_non_zero_exit: false放在许多任务中。闻起来很糟糕。

是否有任何内置函数可以让我缩短我的陈述?

Foreman config

  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

1 个答案:

答案 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