summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorBrice Figureau <brice-puppet@daysofwonder.com>2009-02-14 17:16:09 +0100
committerBrice Figureau <brice-puppet@daysofwonder.com>2009-02-16 20:12:11 +0100
commit0c71c5cde211808ef6fd744ccbcc82b6cfc38bb5 (patch)
tree5328d85be48271fd2d34ff78a98f2e4250e3cad4 /bin
parente317fa9717e648435dbbc62497d73f803b7b2760 (diff)
downloadpuppet-0c71c5cde211808ef6fd744ccbcc82b6cfc38bb5.tar.gz
puppet-0c71c5cde211808ef6fd744ccbcc82b6cfc38bb5.tar.xz
puppet-0c71c5cde211808ef6fd744ccbcc82b6cfc38bb5.zip
Move puppetdoc to the Application Controller paradigm
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Diffstat (limited to 'bin')
-rwxr-xr-xbin/puppetdoc197
1 files changed, 2 insertions, 195 deletions
diff --git a/bin/puppetdoc b/bin/puppetdoc
index 7c90785cd..87e711056 100755
--- a/bin/puppetdoc
+++ b/bin/puppetdoc
@@ -59,198 +59,5 @@
# Copyright (c) 2005-2007 Reductive Labs, LLC
# Licensed under the GNU Public License
-require 'puppet'
-require 'puppet/util/reference'
-require 'puppet/network/handler'
-require 'puppet/util/rdoc'
-require 'getoptlong'
-
-options = [
- [ "--all", "-a", GetoptLong::NO_ARGUMENT ],
- [ "--list", "-l", GetoptLong::NO_ARGUMENT ],
- [ "--format", "-f", GetoptLong::REQUIRED_ARGUMENT ],
- [ "--mode", "-m", GetoptLong::REQUIRED_ARGUMENT ],
- [ "--reference", "-r", GetoptLong::REQUIRED_ARGUMENT ],
- [ "--help", "-h", GetoptLong::NO_ARGUMENT ],
- [ "--outputdir", "-o", GetoptLong::REQUIRED_ARGUMENT ],
- [ "--verbose", "-v", GetoptLong::NO_ARGUMENT ],
- [ "--debug", "-d", GetoptLong::NO_ARGUMENT ]
-]
-
-# Add all of the config parameters as valid options.
-Puppet.settings.addargs(options)
-result = GetoptLong.new(*options)
-
-debug = false
-
-$tab = " "
-options = {:references => [], :mode => :text, :format => :to_rest}
-
-Reference = Puppet::Util::Reference
-
-begin
- unknown_args = []
- result.each { |opt,arg|
- case opt
- when "--outputdir"
- options[:outputdir] = arg
- when "--all"
- options[:all] = true
- when "--format"
- method = "to_%s" % arg
- if Reference.method_defined?(method)
- options[:format] = method
- else
- raise "Invalid output format %s" % arg
- end
- when "--mode"
- if Reference.modes.include?(arg) or arg.intern==:rdoc
- options[:mode] = arg.intern
- else
- raise "Invalid output mode %s" % arg
- end
- when "--list"
- puts Reference.references.collect { |r| Reference.reference(r).doc }.join("\n")
- exit(0)
- when "--reference"
- options[:references] << arg.intern
- when "--verbose"
- options[:verbose] = true
- when "--debug"
- options[:debug] = true
- when "--help"
- if Puppet.features.usage?
- RDoc::usage && exit
- else
- puts "No help available unless you have RDoc::usage installed"
- exit
- end
- else
- unknown_args << {:opt => opt, :arg => arg }
- end
- }
-
- # sole manifest documentation
- if ARGV.size > 0
- options[:mode] = :rdoc
- manifest = true
- end
-
- # consume the remaining unknown options
- # and feed them as settings, but only for rdoc mode
- if options[:mode] == :rdoc and unknown_args.size > 0
- unknown_args.each do |option|
- # force absolute path for modulepath when passed on commandline
- if option[:opt]=="--modulepath" or option[:opt] == "--manifestdir"
- option[:arg] = option[:arg].split(':').collect { |p| File.expand_path(p) }.join(':')
- end
- Puppet.settings.handlearg(option[:opt], option[:arg])
- end
- end
-rescue GetoptLong::InvalidOption => detail
- $stderr.puts "Try '#{$0} --help'"
- exit(1)
-end
-
-if options[:mode] == :rdoc # rdoc mode
- # hack to get access to puppetmasterd modulepath and manifestdir
- Puppet[:name] = "puppetmasterd"
- # Now parse the config
- Puppet.parse_config
-
- # Handle the logging settings.
- if options[:debug] or options[:verbose]
- if options[:debug]
- Puppet::Util::Log.level = :debug
- else
- Puppet::Util::Log.level = :info
- end
-
- Puppet::Util::Log.newdestination(:console)
- end
-end
-
-if options[:all] and options[:mode] != :rdoc
- # Don't add dynamic references to the "all" list.
- options[:references] = Reference.references.reject do |ref|
- Reference.reference(ref).dynamic?
- end
-end
-
-if options[:references].empty?
- options[:references] << :type
-end
-
-case options[:mode]
-when :rdoc # rdoc or sole manifest mode
- exit_code = 0
- files = []
- unless manifest
- files += Puppet[:modulepath].split(':').collect { |p| File.expand_path(p) }
- files += Puppet[:manifestdir].split(':').collect { |p| File.expand_path(p) }
- end
- files += ARGV
- Puppet.info "scanning: %s" % files.inspect
- Puppet.settings.setdefaults("puppetdoc",
- "document_all" => [false, "Document all resources"]
- )
- Puppet.settings[:document_all] = options[:all] || false
- begin
- if manifest
- Puppet::Util::RDoc.manifestdoc(files)
- else
- Puppet::Util::RDoc.rdoc(options[:outputdir], files)
- end
- rescue => detail
- if Puppet[:trace]
- puts detail.backtrace
- end
- $stderr.puts "Could not generate documentation: %s" % detail
- exit_code = 1
- end
- exit exit_code
-when :trac
- options[:references].each do |name|
- section = Puppet::Util::Reference.reference(name) or raise "Could not find section %s" % name
- unless options[:mode] == :pdf
- section.trac
- end
- end
-else
- text = ""
- if options[:references].length > 1
- with_contents = false
- else
- with_contents = true
- end
- exit_code = 0
- options[:references].sort { |a,b| a.to_s <=> b.to_s }.each do |name|
- raise "Could not find reference %s" % name unless section = Puppet::Util::Reference.reference(name)
-
- begin
- # Add the per-section text, but with no ToC
- text += section.send(options[:format], with_contents)
- rescue => detail
- puts detail.backtrace
- $stderr.puts "Could not generate reference %s: %s" % [name, detail]
- exit_code = 1
- next
- end
- end
-
- unless with_contents # We've only got one reference
- text += Puppet::Util::Reference.footer
- end
-
- # Replace the trac links, since they're invalid everywhere else
- text.gsub!(/`\w+\s+([^`]+)`:trac:/) { |m| $1 }
-
- if options[:mode] == :pdf
- Puppet::Util::Reference.pdf(text)
- else
- puts text
- end
-
- exit exit_code
-end
-
+require 'puppet/application/puppetdoc'
+Puppet::Application[:puppetdoc].run