module PhusionPassenger::Config
Core of the `passenger-config` command. Dispatches a subcommand to a specific class.
Constants
- ABOUT_OPTIONS
- KNOWN_COMMANDS
Public Class Methods
help()
click to toggle source
# File lib/phusion_passenger/config/main.rb, line 68 def self.help puts "Usage: passenger-config <COMMAND> [options]" puts "Tool for controlling or configurating a #{PROGRAM_NAME} instance or installation." puts puts "Management commands:" puts " detach-process Detach an application process from the process pool" puts " restart-app Restart an application" puts puts "Informational commands:" puts " validate-install Validate this Phusion Passenger installation" puts " about Show information about Phusion Passenger" puts puts "Miscellaneous commands:" puts " build-native-support Ensure that the native_support library for the current" puts " Ruby interpeter is built" puts puts "Type 'passenger-config <COMMAND> --help' for more information." end
run!(argv)
click to toggle source
# File lib/phusion_passenger/config/main.rb, line 55 def self.run!(argv) command_class, new_argv = lookup_command_class_by_argv(argv) if help_requested?(argv) help elsif command_class command = command_class.new(new_argv) command.run else help abort end end
Private Class Methods
help_requested?(argv)
click to toggle source
# File lib/phusion_passenger/config/main.rb, line 88 def self.help_requested?(argv) return argv.size == 1 && (argv[0] == "--help" || argv[0] == "-h" || argv[0] == "help") end
lookup_command_class_by_argv(argv)
click to toggle source
# File lib/phusion_passenger/config/main.rb, line 92 def self.lookup_command_class_by_argv(argv) return nil if argv.empty? # Compatibility with version <= 4.0.29: try to pass all # --switch invocations to AboutCommand. if argv[0] =~ /^--/ name = argv[0].sub(/^--/, '') if ABOUT_OPTIONS.include?(name) command_class = lookup_command_class_by_class_name("AboutCommand") return [command_class, argv] else return nil end end # Convert "passenger-config help <COMMAND>" to "passenger-config <COMMAND> --help". if argv.size == 2 && argv[0] == "help" argv = [argv[1], "--help"] end KNOWN_COMMANDS.each do |props| if argv[0] == props[0] command_class = lookup_command_class_by_class_name(props[1]) new_argv = argv[1 .. -1] return [command_class, new_argv] end end return nil end
lookup_command_class_by_class_name(class_name)
click to toggle source
# File lib/phusion_passenger/config/main.rb, line 123 def self.lookup_command_class_by_class_name(class_name) base_name = class_name.gsub(/[A-Z]/) do |match| "_" + match[0..0].downcase end base_name.sub!(/^_/, '') base_name << ".rb" PhusionPassenger.require_passenger_lib("config/#{base_name}") return PhusionPassenger::Config.const_get(class_name) end