summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/feature/base.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/puppet/feature/base.rb b/lib/puppet/feature/base.rb
index 1971f14f2..44a9f3fc1 100644
--- a/lib/puppet/feature/base.rb
+++ b/lib/puppet/feature/base.rb
@@ -31,3 +31,14 @@ Puppet.features.add(:rrd, :libs => ["RRDtool"])
# We have OpenSSL
Puppet.features.add(:openssl, :libs => ["openssl"])
+
+# We can use POSIX user functions? The require returns false on Windows
+Puppet.features.add(:posix) do
+ require 'etc'
+ Etc.getpwuid(0) != nil
+end
+
+# We can use Win32 functions
+Puppet.features.add(:win32, :libs => ["sys/admin", "win32/process"])
+
+raise Puppet::Error "Cannot determine basic system flavour" unless Puppet.features.posix? or Puppet.features.win32?