Method: Puppet::Application#parse_options
- Defined in:
- lib/puppet/application.rb
#parse_options ⇒ void
This method returns an undefined value.
Options defined with the ‘option` method are parsed from settings and the command line. Refer to OptionParser documentation for the exact format. Options are parsed as follows:
-
If the option method is given a block, then it will be called whenever the option is encountered in the command-line argument.
-
If the option method has no block, then the default option handler will store the argument in the ‘options` instance variable.
-
If a given option was not defined by an ‘option` method, but it exists as a Puppet setting:
-
if ‘unknown` was used with a block, it will be called with the option name and argument.
-
if ‘unknown` wasn’t used, then the option/argument is handed to Puppet.settings.handlearg for a default behavior.
-
-
The ‘-h` and `–help` options are automatically handled by the command line before creating the application.
Options specified on the command line override settings. It is usually not necessary to override this method.
533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 |
# File 'lib/puppet/application.rb', line 533 def # Create an option parser option_parser = OptionParser.new(self.class.) # Here we're building up all of the options that the application may need to handle. The main # puppet settings defined in "defaults.rb" have already been parsed once (in command_line.rb) by # the time we get here; however, our app may wish to handle some of them specially, so we need to # make the parser aware of them again. We might be able to make this a bit more efficient by # re-using the parser object that gets built up in command_line.rb. --cprice 2012-03-16 # Add all global options to it. Puppet.settings.optparse_addargs([]).each do |option| option_parser.on(*option) do |arg| handlearg(option[0], arg) end end # Add options that are local to this application, which were # created using the "option()" metaprogramming method. If there # are any conflicts, this application's options will be favored. self.class.option_parser_commands.each do |, fname| option_parser.on(*) do |value| # Call the method that "option()" created. send(fname, value) end end # Scan command line. We just hand any exceptions to our upper levels, # rather than printing help and exiting, so that we can meaningfully # respond with context-sensitive help if we want to. --daniel 2011-04-12 option_parser.parse!(command_line.args) end |