rendered paste bodybegin require 'Win32API' # Start a command in the background; return PID of background task. def spawn(cmd) puts cmd if $verbose startup_info = [68].pack('lx64') process_info = [0, 0, 0, 0].pack('llll') result = Win32API.new('kernel32.dll', 'CreateProcess', 'pplllllppp', 'L').call( nil, cmd, 0, 0, 1, 0, 0, '.', startup_info, process_info ) raise "Failed to start #{cmd.inspect}" if result == 0 process_id = process_info.unpack('llll')[2] return process_id endrescue LoadError # Hm, no Win32API. Assume Unix. def spawn(cmd) puts cmd if $verbose pid = Process.fork if not pid exec(cmd) fatal self, "Error executing #{cmd.inspect}" else pid end end def killall(cmd) `killall #{cmd} 2>/dev/null` end $tmp_dir = ENV["TMP"] || ENV["TEMP"] || "/var/tmp" $WIN32 = falseend