diff --git a/app/models/deploy.rb b/app/models/deploy.rb index d08aa239..0f0e86ce 100644 --- a/app/models/deploy.rb +++ b/app/models/deploy.rb @@ -49,20 +49,22 @@ class Deploy < ApplicationRecord # # @param [String] # @return [Boolean] - def run(cmd) + def run(cmd, output: false) r = nil lines = [] time_start Dir.chdir(site.path) do Open3.popen2e(env, cmd, unsetenv_others: true) do |_, o, t| - r = t.value - # XXX: Tenemos que leer línea por línea porque en salidas largas - # se cuelga la IO # TODO: Enviar a un websocket para ver el proceso en vivo? - o.each do |line| - lines << line + Thread.new do + o.each do |line| + lines << line + + puts line if output + end end + r = t.value end end time_stop