All pastes #358541 Raw Edit

Unnamed

public ruby v1 · immutable
·published 2007-02-16 09:04 UTC
rendered paste body
begin  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