diff options
author | Jacob Helwig <jacob@puppetlabs.com> | 2011-04-22 11:14:36 -0700 |
---|---|---|
committer | Jacob Helwig <jacob@puppetlabs.com> | 2011-04-22 11:14:36 -0700 |
commit | 89620ab51997e032ccde218de13acab9f55da4b8 (patch) | |
tree | e018525ded746d7d74018bf3c86a47a333536b96 /lib/puppet | |
parent | 2591a539481710e228e96c57b85434c1b9951c15 (diff) | |
parent | f21162bdbae516d2613052d35a2f8bbd34d0bf86 (diff) | |
download | puppet-89620ab51997e032ccde218de13acab9f55da4b8.tar.gz puppet-89620ab51997e032ccde218de13acab9f55da4b8.tar.xz puppet-89620ab51997e032ccde218de13acab9f55da4b8.zip |
Merge branch 'tickets/2.7.next/6368-files-autorequire-nearest-ancestor-directory' into 2.7.next
* tickets/2.7.next/6368-files-autorequire-nearest-ancestor-directory:
(#6368) Make the File type autorequire its nearest ancestor directory
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/type/file.rb | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/puppet/type/file.rb b/lib/puppet/type/file.rb index 715836b22..1790c5e92 100644 --- a/lib/puppet/type/file.rb +++ b/lib/puppet/type/file.rb @@ -257,11 +257,17 @@ Puppet::Type.newtype(:file) do newvalues(:first, :all) end - # Autorequire any parent directories. + # Autorequire the nearest ancestor directory found in the catalog. autorequire(:file) do basedir = ::File.dirname(self[:path]) if basedir != self[:path] - basedir + parents = [] + until basedir == parents.last + parents << basedir + basedir = File.dirname(basedir) + end + # The filename of the first ancestor found, or nil + parents.find { |dir| catalog.resource(:file, dir) } else nil end |