module Fontana::CommandUtils
Public Instance Methods
spawn_at_vendor_fontana(env, cmd, options = {})
click to toggle source
# File lib/fontana/command_utils.rb, line 16 def spawn_at_vendor_fontana(env, cmd, options = {}) options = { chdir: FontanaClientSupport.vendor_fontana }.update(options) env = env.each_with_object({}){|(k,v), d| d[k.to_s] = v.to_s } puts "now spawning:\n env: #{env.inspect}\n cmd: #{cmd.inspect}\n options: #{options.inspect}" pid = spawn(env, cmd, options) puts "spawning suceeded pid: #{pid.inspect}" Process.detach(pid) return pid end
spawn_at_vendor_fontana_with_sweeper(*args)
click to toggle source
# File lib/fontana/command_utils.rb, line 26 def spawn_at_vendor_fontana_with_sweeper(*args) pid = spawn_at_vendor_fontana(*args) at_exit{ puts "Now killing #{pid}" Process.kill("INT", pid) } pid end
system!(cmd)
click to toggle source
# File lib/fontana/command_utils.rb, line 35 def system!(cmd) puts "now executing: #{cmd}" buf = [] IO.popen("#{cmd} 2>&1") do |io| while line = io.gets puts line buf << line end end if $?.exitstatus != 0 $stderr.puts("\e[31mFAILURE: %s\n%s\e[0m" % [cmd, buf.join.strip]) exit(1) end end
system_at_vendor_fontana!(cmd, &block)
click to toggle source
# File lib/fontana/command_utils.rb, line 10 def system_at_vendor_fontana!(cmd, &block) FileUtils::Verbose.chdir(FontanaClientSupport.vendor_fontana) do return system!(cmd, &block) end end