summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rwxr-xr-xlib/puppet/provider/parsedfile.rb5
-rw-r--r--lib/puppet/util/fileparsing.rb10
2 files changed, 13 insertions, 2 deletions
diff --git a/lib/puppet/provider/parsedfile.rb b/lib/puppet/provider/parsedfile.rb
index 43c53601e..cdb770b8b 100755
--- a/lib/puppet/provider/parsedfile.rb
+++ b/lib/puppet/provider/parsedfile.rb
@@ -229,7 +229,10 @@ class Puppet::Provider::ParsedFile < Puppet::Provider
old = @target
begin
@target = path
- self.parse(text)
+ return self.parse(text)
+ rescue Puppet::Error => detail
+ detail.file = @target
+ raise detail
ensure
@target = old
end
diff --git a/lib/puppet/util/fileparsing.rb b/lib/puppet/util/fileparsing.rb
index 169320ae5..26be0f506 100644
--- a/lib/puppet/util/fileparsing.rb
+++ b/lib/puppet/util/fileparsing.rb
@@ -219,8 +219,16 @@ module Puppet::Util::FileParsing
# Split a bunch of text into lines and then parse them individually.
def parse(text)
+ count = 1
lines(text).collect do |line|
- parse_line(line)
+ count += 1
+ if val = parse_line(line)
+ val
+ else
+ error = Puppet::Error.new("Could not parse line %s" % line.inspect)
+ error.line = count
+ raise error
+ end
end
end