From bfe0ba6842721cc45c18fb44985c12a4bc3cc74a Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Sat, 25 Feb 2012 20:03:55 +0100 Subject: [PATCH] Keep result code in Cocaine::CommandLine#exit_status --- lib/cocaine/command_line.rb | 4 ++++ spec/cocaine/command_line_spec.rb | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/cocaine/command_line.rb b/lib/cocaine/command_line.rb index 538ea61..f619f36 100644 --- a/lib/cocaine/command_line.rb +++ b/lib/cocaine/command_line.rb @@ -4,6 +4,8 @@ class << self attr_accessor :path, :logger end + attr_reader :exit_status + def initialize(binary, params = "", options = {}) @binary = binary.dup @params = params.dup @@ -31,6 +33,8 @@ def run end rescue Errno::ENOENT raise Cocaine::CommandNotFoundError + ensure + @exit_status = $?.exitstatus end if $?.exitstatus == 127 raise Cocaine::CommandNotFoundError diff --git a/spec/cocaine/command_line_spec.rb b/spec/cocaine/command_line_spec.rb index 1aeefa2..ba7276e 100644 --- a/spec/cocaine/command_line_spec.rb +++ b/spec/cocaine/command_line_spec.rb @@ -142,6 +142,15 @@ end end + it "should keep result code in #exitstatus" do + cmd = Cocaine::CommandLine.new("convert") + cmd.class.stubs(:"`").with("convert").returns(:correct_value) + with_exitstatus_returning(1) do + cmd.run rescue nil + end + cmd.exit_status.should == 1 + end + it "detects that the system is unix" do Cocaine::CommandLine.new("convert").unix?.should be_true end