lib/cucumber/chef/helpers/command.rb in cucumber-chef-2.0.7 vs lib/cucumber/chef/helpers/command.rb in cucumber-chef-2.1.0.rc.0

- old
+ new

@@ -1,10 +1,10 @@ ################################################################################ # # Author: Stephen Nelson-Smith <stephen@atalanta-systems.com> # Author: Zachary Patten <zachary@jovelabs.com> -# Copyright: Copyright (c) 2011-2012 Atalanta Systems Ltd +# Copyright: Copyright (c) 2011-2013 Atalanta Systems Ltd # License: Apache License, Version 2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -22,32 +22,48 @@ module Cucumber::Chef::Helpers::Command ################################################################################ def command_run_remote(name, command, expected_exit_code=0) - output = %x(ssh #{name} '#{command}' 2>&1) - raise "command_run_remote(#{command}) failed (#{$?})" if ($? != expected_exit_code) + command = %Q(ssh #{name} #{command} 2>&1) + logger.info { "command_run_remote(#{command})" } + output = %x(#{command}) + if !expected_exit_code.nil? && ($? != expected_exit_code) + message = "command_run_remote(#{command}) failed (code=#{$?},output='#{output.chomp}')" + logger.fatal { message } + logger.fatal { "output(#{output.chomp})" } + raise message + end output -# rescue RuntimeError => e -# if $? == 65280 -# puts "Exit Code #{$?}: Retrying..." -# retry -# end end ################################################################################ def command_run_chroot(name, command, expected_exit_code=0) - output = %x(chroot #{container_root(name)} /bin/bash -c '#{command}' 2>&1) - raise "command_run_chroot(#{command}) failed (#{$?})" if ($? != expected_exit_code) + command = %Q(chroot #{container_root(name)} /bin/bash -c '#{command.gsub("'", '"')}' 2>&1) + logger.info { "command_run_chroot(#{command})" } + output = %x(#{command}) + if !expected_exit_code.nil? && ($? != expected_exit_code) + message = "command_run_chroot(#{command}) failed (#{$?})" + logger.fatal { message } + logger.fatal { "output(#{output.chomp})" } + raise message + end output end ################################################################################ def command_run_local(command, expected_exit_code=0) - output = %x(#{command} 2>&1) - raise "command_run_local(#{command}) failed (#{$?})" if ($? != expected_exit_code) + command = %Q(/bin/bash -c '#{command.gsub("'", '"')}' 2>&1) + logger.info { "command_run_local(#{command})" } + output = %x(#{command}) + if !expected_exit_code.nil? && ($? != expected_exit_code) + message = "command_run_local(#{command}) failed (#{$?})" + logger.fatal { message } + logger.fatal { "output(#{output.chomp})" } + raise message + end output end ################################################################################