module Puppet::Parser::Files
Public Instance Methods
Find the path to the given file selector. Files can be selected in one of two ways:
* absolute path: the path is simply returned * modulename/filename selector: a file is found in the file directory of the named module.
In the second case a nil is returned if there isn't a file found. In the first case (absolute path), there is no existence check done and so the path will be returned even if there isn't a file available.
@param template [String] the file selector @param environment [Puppet::Node::Environment] the environment in which to search @return [String, nil] the absolute path to the file or nil if there is no file found
@api private
# File lib/puppet/parser/files.rb 41 def find_file(file, environment) 42 find_in_module(file, environment) do |mod,module_file| 43 mod.file(module_file) 44 end 45 end
@api private
# File lib/puppet/parser/files.rb 69 def find_in_module(reference, environment) 70 if Puppet::Util.absolute_path?(reference) 71 reference 72 else 73 path, file = split_file_path(reference) 74 mod = environment.module(path) 75 76 if file && mod 77 yield(mod, file) 78 else 79 nil 80 end 81 end 82 end
Return a list of manifests as absolute filenames matching the given pattern.
@param pattern [String] A reference for a file in a module. It is the
format "<modulename>/<file glob>"
@param environment [Puppet::Node::Environment] the environment of modules
@return [Array(String, Array<String>)] the module name and the list of files found @api private
# File lib/puppet/parser/files.rb 15 def find_manifests_in_modules(pattern, environment) 16 module_name, file_pattern = split_file_path(pattern) 17 18 mod = environment.module(module_name) 19 if mod 20 [mod.name, mod.match_manifests(file_pattern)] 21 else 22 [nil, []] 23 end 24 end
Find the path to the given template selector. Templates can be selected in a couple of ways:
* absolute path: the path is simply returned * modulename/filename selector: a file is found in the template directory of the named module.
In the last two cases a nil is returned if there isn't a file found. In the first case (absolute path), there is no existence check done and so the path will be returned even if there isn't a file available.
@param template [String] the template selector @param environment [Puppet::Node::Environment] the environment in which to search @return [String, nil] the absolute path to the template file or nil if there is no file found
@api private
# File lib/puppet/parser/files.rb 62 def find_template(template, environment) 63 find_in_module(template, environment) do |mod,template_file| 64 mod.template(template_file) 65 end 66 end
Split the path into the module and the rest of the path, or return nil if the path is empty or absolute (starts with a /). @api private
# File lib/puppet/parser/files.rb 87 def split_file_path(path) 88 if path == "" || Puppet::Util.absolute_path?(path) 89 nil 90 else 91 path.split(File::SEPARATOR, 2) 92 end 93 end