Sha256: 1d8674895d0900e8c379c01a541ced6ba998e16a496466ad683c72e6aa2df8c8
Contents?: true
Size: 775 Bytes
Versions: 8
Compression:
Stored size: 775 Bytes
Contents
require 'json' require 'open3' module SimCtl class Executor class << self def execute(command) command = command.flatten.join(' ') $stderr.puts command if ENV['SIMCTL_DEBUG'] Open3.popen3(command) do |stdin, stdout, stderr, result| output = stdout.read if result.value.to_i > 0 output = stderr.read if output.empty? raise StandardError.new(output) end return unless block_given? if looks_like_json?(output) yield JSON.parse(output) else yield output.chomp end end end private def looks_like_json?(output) output.start_with?('[') || output.start_with?('{') end end end end
Version data entries
8 entries across 8 versions & 1 rubygems