lib/vectory/system_call.rb in vectory-0.2.0 vs lib/vectory/system_call.rb in vectory-0.3.0

- old
+ new

@@ -1,13 +1,16 @@ require "open3" module Vectory class SystemCall + TIMEOUT = 60 + attr_reader :status, :stdout, :stderr, :cmd - def initialize(cmd) + def initialize(cmd, timeout = TIMEOUT) @cmd = cmd + @timeout = timeout end def call log_cmd(@cmd) @@ -25,10 +28,16 @@ def log_cmd(cmd) Vectory.ui.debug("Cmd: '#{cmd}'") end def execute(cmd) - @stdout, @stderr, @status = Open3.capture3(cmd) + result = Utils.capture3_with_timeout(cmd, + timeout: @timeout, + kill_after: @timeout) + Vectory.ui.error(result.inspect) + @stdout = result[:stdout] + @stderr = result[:stderr] + @status = result[:status] rescue Errno::ENOENT => e raise SystemCallError, e.inspect end def log_result