diff options
Diffstat (limited to 'lib/puppet/util.rb')
-rw-r--r-- | lib/puppet/util.rb | 20 |
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 |