summaryrefslogtreecommitdiffstats
path: root/lib/puppet/util.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/util.rb')
-rw-r--r--lib/puppet/util.rb20
1 files changed, 16 insertions, 4 deletions
diff --git a/lib/puppet/util.rb b/lib/puppet/util.rb
index 419b4892e..fd283539b 100644
--- a/lib/puppet/util.rb
+++ b/lib/puppet/util.rb
@@ -164,13 +164,15 @@ module Util
end
end
else
- unless obj = Puppet.type(:group)[group]
+ if obj = Puppet.type(:group)[group]
+ obj[:check] = [:gid]
+ else
obj = Puppet.type(:group).create(
:name => group,
:check => [:gid]
)
- obj.retrieve
end
+ obj.retrieve
end
if obj
gid = obj.should(:gid) || obj.is(:gid)
@@ -207,10 +209,10 @@ module Util
else
unless obj = Puppet.type(:user)[user]
obj = Puppet.type(:user).create(
- :name => user,
- :check => [:uid, :gid]
+ :name => user
)
end
+ obj[:check] = [:uid, :gid]
end
if obj
@@ -281,6 +283,16 @@ module Util
raise ArgumentError, "'%s' must be a string or symbol" % value
end
end
+
+ def self.withumask(mask)
+ cur = File.umask(mask)
+
+ begin
+ yield
+ ensure
+ File.umask(cur)
+ end
+ end
end
end