blob: cffa891350ad9f7bf705110520657a0ddcaf3b27 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#!/usr/bin/env ruby
appdir = File.join('puppet', 'application')
absolute_appdir = $:.collect { |x| File.join(x,'puppet','application') }.detect{ |x| File.directory?(x) }
builtins = Dir[File.join(absolute_appdir, '*.rb')].map{|fn| File.basename(fn, '.rb')}
usage = "Usage: puppet command <space separated arguments>"
available = "Available commands are: #{builtins.sort.join(', ')}"
command_name = ARGV.empty? || ARGV.first[/^-/] || ARGV.first =~ /\.pp/ || ARGV.first =~ /\.rb/ ? nil : ARGV.shift # subcommand?
if command_name.nil? # It's old-style puppet, executing something
command_name = "main"
end
if command_name.nil? # main
puts usage, available
elsif builtins.include?(command_name) #subcommand
require File.join(appdir, command_name)
Puppet::Application[command_name].run
else
abort "Error: Unknown command #{command_name}.\n#{usage}\n#{available}"
end
|