Module: Libis::Tools::Command
- Defined in:
- lib/libis/tools/command.rb
Class Method Summary collapse
-
.run(cmd, *opts) ⇒ Hash
Run an external program and return status, stdout and stderr.
Class Method Details
.run(cmd, *opts) ⇒ Hash
Run an external program and return status, stdout and stderr.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/libis/tools/command.rb', line 18 def self.run(cmd, *opts) result = { status: 999, out: [], err: [] } begin Open3.popen3(cmd, *opts) do |_, output, error, thread| output = output.read error = error.read result[:out] = output.split("\n").map(&:chomp) result[:err] = error.split("\n").map(&:chomp) result[:status] = thread.value.exitstatus rescue nil end rescue StandardError => e result[:err] = [e.class.name, e.] end result end |