class PhusionPassenger::Config::ListInstancesCommand
def self.create_option_parser(options)
def self.create_option_parser(options) OptionParser.new do |opts| nl = "\n" + ' ' * 37 opts.banner = "Usage: passenger-config list-instances [OPTIONS] <PID>\n" opts.separator "" opts.separator " List all running #{PROGRAM_NAME} instances." opts.separator "" opts.on("--json", "Print output in JSON format") do options[:json] = true end opts.on("-q", "--quiet", "Don't print anything if there are no #{PROGRAM_NAME} instances running") do options[:quiet] = true end opts.on("-h", "--help", "Show this help") do options[:help] = true end end end
def help
def help puts @parser end
def parse_options
def parse_options super if !@argv.empty? help abort end end
def print_instances(instances)
def print_instances(instances) printf "%-25s %s\n", "Name", "Description" puts "------------------------------------------------------------------" instances.each do |instance| printf "%-25s %s\n", instance.name, instance.server_software end end
def print_json(instances)
def print_json(instances) result = [] instances.each do |instance| result << instance.properties end puts PhusionPassenger::Utils::JSON.generate(result) end
def print_no_instances_running
def print_no_instances_running if !@options[:quiet] puts "There are no #{PROGRAM_NAME} instances running." end end
def run
def run parse_options instances = AdminTools::InstanceRegistry.new.list if @options[:json] print_json(instances) elsif instances.empty? print_no_instances_running else print_instances(instances) end end