2012-03-08 48 views
3

我想運行本地命令並在任何命令失敗時退出。與capistrano做這件事的最好方法是什麼? run_locally將繼續失敗。Capistrano在失敗時運行本地命令退出

我是否必須每次檢查最後一個命令的存在狀態(或創建一個自定義運行本地功能)?

回答

0

通常在shell中,您可以通過command1 --some-argument foo && command2 && command3以您想要的方式運行多個命令。 &&運算符將會導致當一個命令失敗時鏈將停止(返回非零返回值)。

2

我要創建我自己的函數是這樣的:

task :build_backend do 
    run_local("echo hello") 
    run_local("abcdef") 
    run_local("echo 'not run'") 
end 

def run_local(cmd) 
    system cmd 
    if($?.exitstatus != 0) then 
    puts 'exit code: ' + $?.exitstatus.to_s 
    exit 
    end 
end 

使用this

相關問題