lib/autowow/executor.rb in autowow-0.8.0 vs lib/autowow/executor.rb in autowow-0.8.1
- old
+ new
@@ -1,49 +1,56 @@
-require 'tty-command'
-
-module Autowow
- module Executor
- class Pretty < TTY::Command::Printers::Pretty
- def print_command_out_data(cmd, *args); end
- def print_command_err_data(cmd, *args); end
- def print_command_exit(cmd, status, runtime, *args)
- super
- write('')
- end
- end
-
- class PrettyWithOutput < TTY::Command::Printers::Pretty
- def print_command_exit(cmd, status, runtime, *args)
- super
- write('')
- end
- end
-
- class RunWrapper
- def initialize(tty_command)
- @tty_command = tty_command
- end
-
- def run(array)
- @tty_command.run(*array)
- end
-
- def run!(array)
- @tty_command.run!(*array)
- end
- end
-
- def pretty
- @pretty ||= RunWrapper.new(TTY::Command.new(pty: true, printer: Pretty))
- end
-
- def pretty_with_output
- @pretty_with_output ||= RunWrapper.new(TTY::Command.new(pty: true, printer: PrettyWithOutput))
- end
-
- def quiet
- @quiet ||= RunWrapper.new(TTY::Command.new(pty: true, printer: :null))
- end
-
- include ReflectionUtils::CreateModuleFunctions
- end
-end
+require "tty-command"
+
+module Autowow
+ module Executor
+ class Pretty < TTY::Command::Printers::Pretty
+ def print_command_out_data(cmd, *args); end
+ def print_command_err_data(cmd, *args); end
+
+ def print_command_exit(cmd, status, runtime, *args)
+ super
+ write("")
+ end
+ end
+
+ class PrettyWithOutput < TTY::Command::Printers::Pretty
+ def print_command_exit(cmd, status, runtime, *args)
+ super
+ write("")
+ end
+ end
+
+ class RunWrapper
+ def initialize(tty_command, fail_silently: false)
+ @tty_command = tty_command
+ @fail_silently = fail_silently
+ end
+
+ def run(array)
+ begin
+ @tty_command.run(*array)
+ rescue TTY::Command::ExitError => e
+ raise e unless @fail_silently
+ exit 1
+ end
+ end
+
+ def run!(array)
+ @tty_command.run!(*array)
+ end
+ end
+
+ def pretty
+ @pretty ||= RunWrapper.new(TTY::Command.new(pty: true, printer: Pretty))
+ end
+
+ def pretty_with_output
+ @pretty_with_output ||= RunWrapper.new(TTY::Command.new(pty: true, printer: PrettyWithOutput), fail_silently: true)
+ end
+
+ def quiet
+ @quiet ||= RunWrapper.new(TTY::Command.new(pty: true, printer: :null))
+ end
+
+ include ReflectionUtils::CreateModuleFunctions
+ end
+end