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
################################################################################