summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet')
-rwxr-xr-xlib/puppet/provider/cron/crontab.rb1
-rwxr-xr-xlib/puppet/type/cron.rb8
-rw-r--r--lib/puppet/util/fileparsing.rb8
3 files changed, 13 insertions, 4 deletions
diff --git a/lib/puppet/provider/cron/crontab.rb b/lib/puppet/provider/cron/crontab.rb
index fcf86fc46..3296544f9 100755
--- a/lib/puppet/provider/cron/crontab.rb
+++ b/lib/puppet/provider/cron/crontab.rb
@@ -30,6 +30,7 @@ Puppet::Type.type(:cron).provide(:crontab,
}
crontab = record_line :crontab, :fields => %w{minute hour monthday month weekday command},
+ :match => %r{^(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.+)$},
:optional => %w{minute hour weekday month monthday}, :absent => "*"
class << crontab
diff --git a/lib/puppet/type/cron.rb b/lib/puppet/type/cron.rb
index f0188e8e7..84a8d8af6 100755
--- a/lib/puppet/type/cron.rb
+++ b/lib/puppet/type/cron.rb
@@ -301,8 +301,12 @@ Puppet::Type.newtype(:cron) do
end
def is_to_s(newvalue)
- if newvalue
- newvalue.join(",")
+ if newvalue
+ if newvalue.is_a?(Array)
+ newvalue.join(",")
+ else
+ newvalue
+ end
else
nil
end
diff --git a/lib/puppet/util/fileparsing.rb b/lib/puppet/util/fileparsing.rb
index 545a54071..8e69681cf 100644
--- a/lib/puppet/util/fileparsing.rb
+++ b/lib/puppet/util/fileparsing.rb
@@ -168,8 +168,12 @@ module Puppet::Util::FileParsing
if match = regex.match(line)
fields = []
ret = {}
- record.fields.zip(match.captures).each do |f, v|
- ret[f] = v
+ record.fields.zip(match.captures).each do |field, value|
+ if value == record.absent
+ ret[field] = :absent
+ else
+ ret[field] = value
+ end
end
else
nil