# 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 30
    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 67
    def check
      check_procfile!
      engine.load_procfile(procfile)
      error "no processes defined" unless engine.processes.length > 0
      puts "valid procfile detected (#{engine.process_names.join(', ')})"
    end

engine() click to toggle source

    # File lib/foreman/cli.rb, line 115
    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 55
    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 => ex
      error ex.message
    end

run(*args) click to toggle source

    # File lib/foreman/cli.rb, line 79
    def run(*args)
      load_environment!

      if File.exist?(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
    rescue Interrupt
    end

start(process=nil) click to toggle source

    # File lib/foreman/cli.rb, line 36
    def start(process=nil)
      check_procfile!
      load_environment!
      engine.load_procfile(procfile)
      engine.options[:formation] = "#{process}=1" if process
      engine.start
    end

version() click to toggle source

    # File lib/foreman/cli.rb, line 110
    def version
      puts Foreman::VERSION
    end