lib/autowow/executor.rb in autowow-0.9.0 vs lib/autowow/executor.rb in autowow-0.9.1
- old
+ new
@@ -1,56 +1,77 @@
-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
+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
+ tty_version = Gem::Version.new(TTY::Command::VERSION)
+ if tty_version < Gem::Version.new("0.8.0")
+ write("")
+ else
+ write(TTY::Command::Cmd.new("dummy"), "")
+ end
+ end
+ end
+
+ class PrettyWithOutput < TTY::Command::Printers::Pretty
+ def print_command_exit(cmd, status, runtime, *args)
+ super
+ tty_version = Gem::Version.new(TTY::Command::VERSION)
+ if tty_version < Gem::Version.new("0.8.0")
+ write("")
+ else
+ write(TTY::Command::Cmd.new("dummy"), "")
+ end
+ 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(tty_params.merge(printer: Pretty)))
+ end
+
+ def pretty_with_output
+ @pretty_with_output ||= RunWrapper.new(TTY::Command.new(tty_params.merge(printer: PrettyWithOutput)), fail_silently: true)
+ end
+
+ def quiet
+ @quiet ||= RunWrapper.new(TTY::Command.new(tty_params.merge(printer: :null)))
+ end
+
+ def tty_params
+ tty_version = Gem::Version.new(TTY::Command::VERSION)
+ if tty_version < Gem::Version.new("0.7.0")
+ {}
+ elsif tty_version < Gem::Version.new("0.8.0")
+ { pty: true }
+ else
+ { pty: true, verbose: false }
+ end
+ end
+
+ include ReflectionUtils::CreateModuleFunctions
+ end
+end