summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorDan Bode <bodepd@gmail.com>2011-01-14 18:21:57 -0600
committerDan Bode <bodepd@gmail.com>2011-01-14 18:29:47 -0600
commit7b3b56ef7bfd32d7afb47fd71c2d9f606856d2e0 (patch)
treeaf5678e2a126f17c66a4786c1f571e6f30f01381 /lib/puppet
parent3f9f37984d1ac5f3ddcc83bf2b1facdb6df6dacd (diff)
downloadpuppet-7b3b56ef7bfd32d7afb47fd71c2d9f606856d2e0.tar.gz
puppet-7b3b56ef7bfd32d7afb47fd71c2d9f606856d2e0.tar.xz
puppet-7b3b56ef7bfd32d7afb47fd71c2d9f606856d2e0.zip
(5977) Puppet::Applications can be loaded from multiple paths.
- previously, Puppet would search $LOAD_PATH and just load applications in the first $LOAD_PATH to have the directory puppet/application. Now multiple paths can contain applications.
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/util/command_line.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/puppet/util/command_line.rb b/lib/puppet/util/command_line.rb
index 3562a3dc0..4aff0a8cb 100644
--- a/lib/puppet/util/command_line.rb
+++ b/lib/puppet/util/command_line.rb
@@ -33,8 +33,12 @@ module Puppet
end
def available_subcommands
- absolute_appdir = $LOAD_PATH.collect { |x| File.join(x,'puppet','application') }.detect{ |x| File.directory?(x) }
- Dir[File.join(absolute_appdir, '*.rb')].map{|fn| File.basename(fn, '.rb')}
+ absolute_appdirs = $LOAD_PATH.collect do |x|
+ File.join(x,'puppet','application')
+ end.select{ |x| File.directory?(x) }
+ absolute_appdirs.inject([]) do |commands, dir|
+ commands + Dir[File.join(dir, '*.rb')].map{|fn| File.basename(fn, '.rb')}
+ end.uniq
end
def usage_message