class Puppetserver::Ca::Cli
Constants
- ACTION_LIST
- ACTION_OPTIONS
- ADMIN_ACTIONS
- BANNER
- MAINT_ACTIONS
- VALID_ACTIONS
Public Class Methods
parse_general_inputs(inputs)
click to toggle source
# File lib/puppetserver/ca/cli.rb, line 115 def self.parse_general_inputs(inputs) parsed = {} general_parser = OptionParser.new do |opts| opts.banner = BANNER opts.separator ACTION_LIST opts.separator "\nGeneral Options:" opts.on('--help', 'Display this general help output') do |help| parsed['help'] = true end opts.on('--version', 'Display the version') do |v| parsed['version'] = true end opts.on('--verbose', 'Display low-level information') do |verbose| parsed['verbose'] = true end opts.separator ACTION_OPTIONS opts.separator "\nSee `puppetserver ca <action> --help` for detailed info" end all,_,_,_ = Utils::CliParsing.parse_without_raising(general_parser, inputs) return general_parser, parsed, all end
run(cli_args = ARGV, out = STDOUT, err = STDERR)
click to toggle source
# File lib/puppetserver/ca/cli.rb, line 68 def self.run(cli_args = ARGV, out = STDOUT, err = STDERR) parser, general_options, unparsed = parse_general_inputs(cli_args) level = general_options.delete('verbose') ? :debug : :info logger = Puppetserver::Ca::Logger.new(level, out, err) if general_options['version'] logger.inform Puppetserver::Ca::VERSION return 0 end action_argument = unparsed.shift action_class = VALID_ACTIONS[action_argument] if general_options['help'] if action_class logger.inform action_class.parser.help else logger.inform parser.help end return 0 end if action_class action = action_class.new(logger) input, exit_code = action.parse(unparsed) if exit_code return exit_code else begin return action.run(input) rescue Puppetserver::Ca::Error => e logger.err "Fatal error when running action '#{action_argument}'" logger.err " Error: " + e.message return 1 end end else logger.warn "Unknown action: #{action_argument}" logger.warn parser.help return 1 end end