lib/foreman/engine.rb in foreman-0.25.0 vs lib/foreman/engine.rb in foreman-0.26.0

- old
+ new

@@ -26,10 +26,11 @@ @environment = read_environment_files(options[:env]) end def start proctitle "ruby: foreman master" + termtitle "#{File.basename(@directory)} - foreman (#{processes.size} processes)" processes.each do |process| process.color = next_color fork process end @@ -39,10 +40,11 @@ watch_for_termination end def execute(name) + error "no such process: #{name}" unless procfile[name] fork procfile[name] trap("TERM") { puts "SIGTERM received"; terminate_gracefully } trap("INT") { puts "SIGINT received"; terminate_gracefully } @@ -94,11 +96,11 @@ until stdin.eof? info stdin.gets, process end end end - rescue PTY::ChildExited, Interrupt, Errno::EIO + rescue PTY::ChildExited, Interrupt, Errno::EIO, Errno::ENOENT begin info "process exiting", process rescue Interrupt end end @@ -154,9 +156,13 @@ name.ljust(longest_process_name + 3) # add 3 for process number padding end def proctitle(title) $0 = title + end + + def termtitle(title) + printf("\033]0;#{title}\007") end def running_processes @running_processes ||= {} end