This is the main entry point for all puppet applications / faces; it is basically where the bootstrapping process / lifecycle of an app begins.
@api private @deprecated
# File lib/puppet/util/command_line.rb, line 60 def self.available_subcommands Puppet.deprecation_warning('Puppet::Util::CommandLine.available_subcommands is deprecated; please use Puppet::Application.available_application_names instead.') Puppet::Application.available_application_names end
@param zero [String] the name of the executable @param argv [Array<String>] the arguments passed on the command line @param stdin [IO] (unused)
# File lib/puppet/util/command_line.rb, line 28 def initialize(zero = $0, argv = ARGV, stdin = STDIN) @command = File.basename(zero, '.rb') @argv = argv Puppet::Plugins.on_commandline_initialization(:command_line_object => self) end
@return [Array<String>] the command line arguments being passed to the subcommand @api public
# File lib/puppet/util/command_line.rb, line 48 def args return @argv if @command != 'puppet' if subcommand_name.nil? @argv else @argv[1..-1] end end
::available_subcommands was previously an instance method, not a class method, and we have an unknown number of user-implemented applications that depend on that behaviour. Forwarding allows us to preserve a backward compatible API. --daniel 2011-04-11 @api private @deprecated
# File lib/puppet/util/command_line.rb, line 71 def available_subcommands Puppet.deprecation_warning('Puppet::Util::CommandLine#available_subcommands is deprecated; please use Puppet::Application.available_application_names instead.') Puppet::Application.available_application_names end
Run the puppet subcommand. If the subcommand is determined to be an external executable, this method will never return and the current process will be replaced via {Kernel#exec}.
@return [void]
# File lib/puppet/util/command_line.rb, line 81 def execute Puppet::Util.exit_on_fail("intialize global default settings") do Puppet.initialize_settings(args) end find_subcommand.run end
@api private
# File lib/puppet/util/command_line.rb, line 90 def external_subcommand Puppet::Util.which("puppet-#{subcommand_name}") end
@return [String] name of the subcommand is being executed @api public
# File lib/puppet/util/command_line.rb, line 36 def subcommand_name return @command if @command != 'puppet' if @argv.first =~ OPTION_OR_MANIFEST_FILE nil else @argv.first end end