summaryrefslogtreecommitdiffstats
path: root/lib/puppet/parser
diff options
context:
space:
mode:
authorLuke Kanies <luke@puppetlabs.com>2010-06-09 10:34:05 -0400
committertest branch <puppet-dev@googlegroups.com>2010-02-17 06:50:53 -0800
commit5d1934bbb118c254ed99f5a625844ad7c9064d8e (patch)
tree499f822e3af3b07f691fd8a4552702007be7a69d /lib/puppet/parser
parentbba45f1defe7525e59e9e5c66882e6416bfad99e (diff)
downloadpuppet-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.rb4
-rw-r--r--lib/puppet/parser/type_loader.rb8
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