diff options
author | Brice Figureau <brice-puppet@daysofwonder.com> | 2009-11-11 22:47:42 +0100 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2009-11-15 10:06:02 +1100 |
commit | 56486664f25f495182dd3e3708e760d4220b1199 (patch) | |
tree | f72cd18c9aef096c8c81b31522d0a2225bb11f14 /lib/puppet | |
parent | 74a877e43d2113c5f60b08d998972e0722e63194 (diff) | |
download | puppet-56486664f25f495182dd3e3708e760d4220b1199.tar.gz puppet-56486664f25f495182dd3e3708e760d4220b1199.tar.xz puppet-56486664f25f495182dd3e3708e760d4220b1199.zip |
Add Environment#manifestdir and small refactoring
This adds a new environment cached attribute: manifestdir.
It is modeled on the code of modulepath, but returns
the manifestdir.
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/node/environment.rb | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/lib/puppet/node/environment.rb b/lib/puppet/node/environment.rb index 133f22c77..94f899200 100644 --- a/lib/puppet/node/environment.rb +++ b/lib/puppet/node/environment.rb @@ -55,15 +55,7 @@ class Puppet::Node::Environment if ENV["PUPPETLIB"] dirs = ENV["PUPPETLIB"].split(File::PATH_SEPARATOR) + dirs end - dirs.collect do |dir| - if dir !~ /^#{File::SEPARATOR}/ - File.join(Dir.getwd, dir) - else - dir - end - end.find_all do |p| - p =~ /^#{File::SEPARATOR}/ && FileTest.directory?(p) - end + validate_dirs(dirs) end # Return all modules from this environment. @@ -73,7 +65,26 @@ class Puppet::Node::Environment module_names.collect { |path| Puppet::Module.new(path, self) rescue nil }.compact end + # Cache the manifestdir, so that we aren't searching through + # all known directories all the time. + cached_attr(:manifestdir, :ttl => Puppet[:filetimeout]) do + validate_dirs(self[:manifestdir].split(File::PATH_SEPARATOR)) + end + def to_s name.to_s end + + def validate_dirs(dirs) + dirs.collect do |dir| + if dir !~ /^#{File::SEPARATOR}/ + File.join(Dir.getwd, dir) + else + dir + end + end.find_all do |p| + p =~ /^#{File::SEPARATOR}/ && FileTest.directory?(p) + end + end + end |