Class: Stove::Cli
- Inherits:
-
Object
- Object
- Stove::Cli
- Defined in:
- lib/stove/cli.rb
Instance Method Summary collapse
- #execute! ⇒ Object
-
#initialize(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel) ⇒ Cli
constructor
A new instance of Cli.
Constructor Details
#initialize(argv, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel) ⇒ Cli
Returns a new instance of Cli.
6 7 8 9 |
# File 'lib/stove/cli.rb', line 6 def initialize(argv, stdin=STDIN, stdout=STDOUT, stderr=STDERR, kernel=Kernel) @argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel $stdout, @stderr = @stdout, @stderr end |
Instance Method Details
#execute! ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/stove/cli.rb', line 11 def execute! option_parser.parse!(@argv) [:new_version] = @argv.first raise Stove::InvalidVersionError unless valid_version?([:new_version]) Stove::Logger.set_level(.delete(:log_level)) Stove::Cookbook.new().release! @kernel.exit(0) rescue => e @stderr.puts "#{e.class}: #{e.}" if Stove::Logger.sev_threshold == ::Logger::DEBUG @stderr.puts " #{e.backtrace.join("\n ")}" end @kernel.exit(e.respond_to?(:exit_code) ? e.exit_code : 500) ensure $stdout, $stderr = STDOUT, STDERR end |