class PhusionPassenger::Standalone::Main
Constants
- COMMANDS
Public Class Methods
each_command() { |command_name, command_class| ... }
click to toggle source
# File lib/phusion_passenger/standalone/main.rb, line 42 def self.each_command COMMANDS.each do |command_spec| command_name = command_spec[0] filename = command_name.sub(/-/, '_') + "_command" PhusionPassenger.require_passenger_lib "standalone/#{filename}" command_class = Standalone.const_get(command_spec[1]) yield(command_name, command_class) end end
run!(argv)
click to toggle source
# File lib/phusion_passenger/standalone/main.rb, line 38 def self.run!(argv) new.run!(argv) end
Public Instance Methods
run!(argv)
click to toggle source
# File lib/phusion_passenger/standalone/main.rb, line 52 def run!(argv) command = argv[0] if command.nil? || command == '-h' || command == '--help' run_command('help') exit elsif command == '-v' || command == '--version' run_command('version') exit elsif command_exists?(command) begin run_command(command, argv[1..-1]) rescue => e if defined?(OptionParser::ParseError) && e.is_a?(OptionParser::ParseError) puts e puts puts "Please see '--help' for valid options." exit 1 elsif defined?(ConfigFile::DisallowedContextError) && e.is_a?(ConfigFile::DisallowedContextError) puts "*** Error in #{e.filename} line #{e.line}:" puts e exit 1 else raise e end end else STDERR.puts "Unknown command '#{command}'. Please type --help for options." exit 1 end end
Private Instance Methods
command_exists?(name)
click to toggle source
# File lib/phusion_passenger/standalone/main.rb, line 84 def command_exists?(name) return !!find_command_spec(name) end
find_command_spec(name)
click to toggle source
# File lib/phusion_passenger/standalone/main.rb, line 98 def find_command_spec(name) COMMANDS.each do |spec| if spec[0] == name return spec end end return nil end
get_command_class(spec)
click to toggle source
# File lib/phusion_passenger/standalone/main.rb, line 107 def get_command_class(spec) command_name, class_name = spec filename = command_name.sub(/-/, '_') + "_command" PhusionPassenger.require_passenger_lib("standalone/#{filename}") return Standalone.const_get(class_name) end
run_command(name, args = [])
click to toggle source
# File lib/phusion_passenger/standalone/main.rb, line 88 def run_command(name, args = []) if spec = find_command_spec(name) klass = get_command_class(spec) klass.require_libs if klass.respond_to?(:require_libs) klass.new(args).run else raise ArgumentError, "Command '#{name}' doesn't exist" end end