class Crowbar::Client::Util::Runner
A wrapper around the Crowbar
CLI for proper initialization
Attributes
argv[RW]
kernel[RW]
stderr[RW]
stdin[RW]
stdout[RW]
Public Class Methods
new( argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel )
click to toggle source
# File lib/crowbar/client/util/runner.rb, line 30 def initialize( argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel ) self.argv = argv self.stdin = stdin self.stdout = stdout self.stderr = stderr self.kernel = kernel end
Public Instance Methods
execute!()
click to toggle source
# File lib/crowbar/client/util/runner.rb, line 44 def execute! exit_code = begin $stderr = stderr $stdin = stdin $stdout = stdout App::Entry.start(argv) 0 rescue StandardError => e b = e.backtrace stderr.puts( "#{b.shift}: #{e.message} (#{e.class})" ) stderr.puts( b.map do |s| "\tfrom #{s}" end.join("\n") ) 1 rescue SystemExit => e e.status ensure $stderr = STDERR $stdin = STDIN $stdout = STDOUT end kernel.exit(exit_code) end