diff options
| author | Luke Kanies <luke@puppetlabs.com> | 2010-06-09 10:34:05 -0400 |
|---|---|---|
| committer | test branch <puppet-dev@googlegroups.com> | 2010-02-17 06:50:53 -0800 |
| commit | 5d1934bbb118c254ed99f5a625844ad7c9064d8e (patch) | |
| tree | 499f822e3af3b07f691fd8a4552702007be7a69d /lib/puppet/parser | |
| parent | bba45f1defe7525e59e9e5c66882e6416bfad99e (diff) | |
| download | puppet-5d1934bbb118c254ed99f5a625844ad7c9064d8e.tar.gz puppet-5d1934bbb118c254ed99f5a625844ad7c9064d8e.tar.xz puppet-5d1934bbb118c254ed99f5a625844ad7c9064d8e.zip | |
Fixing #1545 - module_name is now a variable
This is only true for resource types (e.g., classes and defines)
of course.
The actual variable is 'module_name':
class mymod {
notify { "in mymod '$module_name'": }
}
Signed-off-by: Luke Kanies <luke@puppetlabs.com>
Diffstat (limited to 'lib/puppet/parser')
| -rw-r--r-- | lib/puppet/parser/files.rb | 4 | ||||
| -rw-r--r-- | lib/puppet/parser/type_loader.rb | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/lib/puppet/parser/files.rb b/lib/puppet/parser/files.rb index 1ff5552a0..37a726524 100644 --- a/lib/puppet/parser/files.rb +++ b/lib/puppet/parser/files.rb @@ -18,7 +18,7 @@ module Puppet::Parser::Files module_name, pattern = split_file_path(start) begin if mod = Puppet::Module.find(module_name, options[:environment]) - return mod.match_manifests(pattern) + return [mod.name, mod.match_manifests(pattern)] end rescue Puppet::Module::InvalidName # Than that would be a "no." @@ -28,7 +28,7 @@ module Puppet::Parser::Files if files.size == 0 files = Dir.glob(abspat + ".pp").reject { |f| FileTest.directory?(f) } end - return files + return [nil, files] end # Find the concrete file denoted by +file+. If +file+ is absolute, diff --git a/lib/puppet/parser/type_loader.rb b/lib/puppet/parser/type_loader.rb index bcb7fa322..71f0dc084 100644 --- a/lib/puppet/parser/type_loader.rb +++ b/lib/puppet/parser/type_loader.rb @@ -42,7 +42,7 @@ class Puppet::Parser::TypeLoader end pat = file - files = Puppet::Parser::Files.find_manifests(pat, :cwd => dir, :environment => environment) + modname, files = Puppet::Parser::Files.find_manifests(pat, :cwd => dir, :environment => environment) if files.size == 0 raise Puppet::ImportError.new("No file(s) found for import of '#{pat}'") end @@ -54,6 +54,8 @@ class Puppet::Parser::TypeLoader @imported[file] = true parse_file(file) end + + return modname end def imported?(file) @@ -75,12 +77,14 @@ class Puppet::Parser::TypeLoader def load_until(namespaces, name) return nil if name == "" # special-case main. name2files(namespaces, name).each do |filename| + modname = nil import_if_possible(filename) do - import(filename) + modname = import(filename) @loaded << filename end if result = yield(filename) Puppet.info "Automatically imported #{name} from #{filename}" + result.module_name = modname if modname and result.respond_to?(:module_name=) return result end end |
