On Mar 29, 2010, at 10:58 AM, Nigel Kersten wrote:

On Mon, Mar 29, 2010 at 10:57 AM, Luke Kanies <[email protected]> wrote:
+1

Much better.

You don't want tests? :)

Really, this is the kind of ridiculousness that you better test the crap out of before you go submitting code for, and I'm confident you've done that. I don't know that tests would make this code any better, and the tests themselves would likely be more pain than the code itself.

So I'm fine without them, but others might be more stringent.

On Mar 29, 2010, at 10:52 AM, Nigel Kersten wrote:


Signed-off-by: Nigel Kersten <[email protected]>
---
lib/puppet/util/suidmanager.rb |   29 +++++++++++++++++++++++++++--
1 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/lib/puppet/util/suidmanager.rb
b/lib/puppet/util/suidmanager.rb
index a0a9178..8c31aee 100644
--- a/lib/puppet/util/suidmanager.rb
+++ b/lib/puppet/util/suidmanager.rb
@@ -1,4 +1,3 @@
-require 'facter'
require 'puppet/util/warnings'
require 'forwardable'

@@ -6,14 +5,40 @@ module Puppet::Util::SUIDManager
   include Puppet::Util::Warnings
   extend Forwardable

+    # Note groups= is handled specially due to a bug in OS X 10.6
   to_delegate_to_process = [ :euid=, :euid, :egid=, :egid,
-                               :uid=, :uid, :gid=, :gid, :groups=,
:groups ]
+                               :uid=, :uid, :gid=, :gid, :groups ]

   to_delegate_to_process.each do |method|
       def_delegator Process, method
       module_function method
   end

+    def osx_maj_ver
+        return @osx_maj_ver unless @osx_maj_ver.nil?
+        require 'facter'
+ # 'kernel' is available without explicitly loading all facts
+        if Facter.value('kernel') != 'Darwin'
+          @osx_maj_ver = false
+          return @osx_maj_ver
+        end
+        # But 'macosx_productversion_major' requires it.
+        Facter.loadfacts
+        @osx_maj_ver = Facter.value('macosx_productversion_major')
+        return @osx_maj_ver
+    end
+    module_function :osx_maj_ver
+
+    def groups=(grouplist)
+        if osx_maj_ver == '10.6'
+            return true
+        else
+            return Process.groups = grouplist
+            module_function :groups= # what does this do?
+        end
+    end
+    module_function :groups=
+
   if Facter['kernel'].value == 'Darwin'
       # Cannot change real UID on Darwin so we set euid
       alias :uid :euid
--
1.7.0.3

--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en.



--
Between two evils, I always pick the one I never tried before.
   -- Mae West
---------------------------------------------------------------------
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en.





--
nigel

--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected] . For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en .



--
There is no expedient to which a man will not go to avoid the labor
of thinking. --Thomas A. Edison
---------------------------------------------------------------------
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups "Puppet 
Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to