Method: Thor::Actions#run_cmd
- Defined in:
- lib/gitx/extensions/thor.rb
#run_cmd(*args) ⇒ Object
execute a shell command and raise an error if non-zero exit code is returned return the string output from the command
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/gitx/extensions/thor.rb', line 7 def run_cmd(*args) = args.last.is_a?(Hash) ? args.pop : {} cmd = args say "$ #{cmd.join(' ')}", :yellow output = '' Open3.popen2e(*cmd) do |stdin, stdout_err, wait_thr| while line = stdout_err.gets say line, :yellow output << line end exit_status = wait_thr.value fail "#{cmd.join(' ')} failed" unless exit_status.success? || [:allow_failure] end output end |