module Rake

Constants

WHOAMI

Public Class Methods

ensure_only_one_task_is_running(name, working_dir) click to toggle source
# File lib/only_one_rake.rb, line 14
def self.ensure_only_one_task_is_running name, working_dir
  process_status_lines = `ps -u #{WHOAMI} -ef | grep rake | grep -v '/bash ' | grep -v 'grep rake'`.split("\n").map {|line| ProcessStatusLine.new *line.split(" ", 8) }
  Process.exit! 0 if process_status_lines.select {|process_status_line| process_status_line.namespace_equal?(name) && process_status_line.working_dir_equal?(working_dir) }.size > 1
end