class Utils::ProbeServer

def cmd(job)

def cmd(job)
  [ $0, *job ]
end

def enqueue(job)

def enqueue(job)
  output_message "Job #{job.inspect} enqueued.".black.on_yellow
  @jobs.push job
end

def initialize

def initialize
  @jobs    = Queue.new
  Thread.new { work_loop }
end

def output_message(msg)

def output_message(msg)
  STDOUT.puts msg
  STDOUT.flush
end

def run_job(job)

def run_job(job)
  message = "Job #{job.inspect} about to run now:".black
  message = message.ask_and_send(:on_color, 166) || message.on_yellow
  output_message message
  fork do
    exec(*cmd(job))
  end
  Process.wait
  message = "Job #{job.inspect} was just run"
  if $?.success?
    message << " successfully."
    message = message.black.on_green
  else
    message << " and failed with exit status #{$?.exitstatus}!"
    message = message.white.on_red.blink
  end
  output_message message
end

def shutdown

def shutdown
  output_message "Server was shutdown down – HARD!".white.on_red.blink
  exit! 23
end

def work_loop

def work_loop
  loop do
    job = @jobs.shift
    run_job job
  end
end