Module: Rake

Defined in:
lib/only_one_rake.rb

Defined Under Namespace

Modules: DSL Classes: ProcessStatusLine, Task

Constant Summary collapse

WHOAMI =
`whoami`.strip

Class Method Summary collapse

Class Method Details

.ensure_only_one_task_is_running(name, working_dir) ⇒ Object



14
15
16
17
# 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