diff --git a/bin/karo b/bin/karo index d5c9067..e602a91 100755 --- a/bin/karo +++ b/bin/karo @@ -5,7 +5,9 @@ require 'karo' begin Karo::CLI.start(ARGV) rescue SystemExit, Interrupt - puts "Exiting" -rescue Exception => e - puts e + STDERR.puts "Exiting" +rescue => e + STDERR.puts "karo: Error: #{e}" + STDERR.puts e.backtrace + exit 1 end diff --git a/lib/karo/common.rb b/lib/karo/common.rb index 5bc97d8..65a3463 100644 --- a/lib/karo/common.rb +++ b/lib/karo/common.rb @@ -22,6 +22,9 @@ def make_command(configuration, namespace, command, extras) def run_it(cmd, verbose=false) say cmd, :green if verbose system cmd unless options[:dryrun] + if $?.exitstatus != 0 + raise "Non-zero exit code (#{$?.exitstatus}) returned from #{cmd.strip}" + end end def git_repo