class Foreman::CLI

Public Class Methods

is_thor_reserved_word?(word, type) click to toggle source

Hackery. Take the run method away from Thor so that we can redefine it.

Calls superclass method
# File lib/foreman/cli.rb, line 31
def is_thor_reserved_word?(word, type)
  return false if word == "run"
  super
end

Public Instance Methods

check() click to toggle source
# File lib/foreman/cli.rb, line 71
def check
  check_procfile!
  engine.load_procfile(procfile)
  puts "valid procfile detected (#{engine.process_names.join(', ')})"
rescue Foreman::Procfile::EmptyFileError
  error "no processes defined"
end
engine() click to toggle source
# File lib/foreman/cli.rb, line 122
def engine
  @engine ||= begin
    engine_class = Foreman::Engine::CLI
    engine = engine_class.new(options)
    engine
  end
end
export(format, location=nil) click to toggle source
# File lib/foreman/cli.rb, line 59
def export(format, location=nil)
  check_procfile!
  load_environment!
  engine.load_procfile(procfile)
  formatter = Foreman::Export.formatter(format)
  formatter.new(location, engine, options).export
rescue Foreman::Export::Exception, Foreman::Procfile::EmptyFileError => ex
  error ex.message
end
run(*args) click to toggle source
# File lib/foreman/cli.rb, line 84
def run(*args)
  load_environment!

  if File.file?(procfile)
    engine.load_procfile(procfile)
  end

  pid = fork do
    begin
      engine.env.each { |k,v| ENV[k] = v }
      if args.size == 1 && process = engine.process(args.first)
        process.exec(:env => engine.env)
      else
        exec args.shelljoin
      end
    rescue Errno::EACCES
      error "not executable: #{args.first}"
    rescue Errno::ENOENT
      error "command not found: #{args.first}"
    end
  end
  trap("INT") do
    Process.kill(:INT, pid)
  end
  Process.wait(pid)
  exit $?.exitstatus || 0
rescue Interrupt
rescue Foreman::Procfile::EmptyFileError
  error "no processes defined"
end
start(process=nil) click to toggle source
# File lib/foreman/cli.rb, line 37
def start(process=nil)
  check_procfile!
  load_environment!
  engine.load_procfile(procfile)
  engine.options[:formation] = "#{process}=1" if process
  engine.start
rescue Foreman::Procfile::EmptyFileError
  error "no processes defined"
end
version() click to toggle source
# File lib/foreman/cli.rb, line 117
def version
  puts Foreman::VERSION
end