Capistrano & Bash: ignore command exit status Capistrano & Bash: ignore command exit status bash bash

Capistrano & Bash: ignore command exit status


The simplest way is to just append true to the end of your command.

  task :my_task do    run "my_command"  end

Becomes

  task :my_task do    run "my_command; true"  end


For Capistrano 3, you can (as suggested here) use the following:

execute "some_command.sh", raise_on_non_zero_exit: false


The +grep+ command exits non-zero based on what it finds. In the use case where you care about the output but don't mind if it's empty, you'll discard the exit state silently:

run %Q{bash -c 'grep #{escaped_grep_command_args} ; true' }

Normally, I think the first solution is just fine -- I'd make it document itself tho:

cmd = "my_command with_args escaped_correctly"run %Q{bash -c '#{cmd} || echo "Failed: [#{cmd}] -- ignoring."'}