diff options
| author | Nick Lewis <nick@puppetlabs.com> | 2011-08-22 17:06:44 -0700 |
|---|---|---|
| committer | Nick Lewis <nick@puppetlabs.com> | 2011-08-22 17:06:44 -0700 |
| commit | 630ec36089e2224fba99b76d76eaf904af13e4d6 (patch) | |
| tree | a04dff02eb8f296f7a56952cade0621848280288 /lib/puppet/feature | |
| parent | 4684db12b1ca27df4d612fb1a54b7be43f54a6a8 (diff) | |
| parent | 0f207a8ea61205ba6b47e8da429ab3887b3cda4d (diff) | |
| download | puppet-630ec36089e2224fba99b76d76eaf904af13e4d6.tar.gz puppet-630ec36089e2224fba99b76d76eaf904af13e4d6.tar.xz puppet-630ec36089e2224fba99b76d76eaf904af13e4d6.zip | |
Merge pull request #53 from joshcooper/ticket/2.7.x/8662-root-on-windows
Ticket/2.7.x/8662 root on windows
Diffstat (limited to 'lib/puppet/feature')
| -rw-r--r-- | lib/puppet/feature/base.rb | 54 |
1 files changed, 28 insertions, 26 deletions
diff --git a/lib/puppet/feature/base.rb b/lib/puppet/feature/base.rb index 2eddadb7a..cecc1b9ad 100644 --- a/lib/puppet/feature/base.rb +++ b/lib/puppet/feature/base.rb @@ -2,6 +2,34 @@ require 'puppet/util/feature' # Add the simple features, all in one file. +# Order is important as some features depend on others + +# We have a syslog implementation +Puppet.features.add(:syslog, :libs => ["syslog"]) + +# We can use POSIX user functions +Puppet.features.add(:posix) do + require 'etc' + Etc.getpwuid(0) != nil && Puppet.features.syslog? +end + +# We can use Microsoft Windows functions +Puppet.features.add(:microsoft_windows) do + begin + require 'sys/admin' + require 'win32/process' + require 'win32/dir' + require 'win32/service' + require 'win32ole' + require 'win32/api' + true + rescue LoadError => err + warn "Cannot run on Microsoft Windows without the sys-admin, win32-process, win32-dir & win32-service gems: #{err}" unless Puppet.features.posix? + end +end + +raise Puppet::Error,"Cannot determine basic system flavour" unless Puppet.features.posix? or Puppet.features.microsoft_windows? + # We've got LDAP available. Puppet.features.add(:ldap, :libs => ["ldap"]) @@ -30,32 +58,6 @@ Puppet.features.add(:rrd, :libs => ["RRD"]) # We have OpenSSL Puppet.features.add(:openssl, :libs => ["openssl"]) -# We have a syslog implementation -Puppet.features.add(:syslog, :libs => ["syslog"]) - -# We can use POSIX user functions -Puppet.features.add(:posix) do - require 'etc' - Etc.getpwuid(0) != nil && Puppet.features.syslog? -end - -# We can use Microsoft Windows functions -Puppet.features.add(:microsoft_windows) do - begin - require 'sys/admin' - require 'win32/process' - require 'win32/dir' - require 'win32/service' - require 'win32ole' - require 'win32/api' - true - rescue LoadError => err - warn "Cannot run on Microsoft Windows without the sys-admin, win32-process, win32-dir & win32-service gems: #{err}" unless Puppet.features.posix? - end -end - -raise Puppet::Error,"Cannot determine basic system flavour" unless Puppet.features.posix? or Puppet.features.microsoft_windows? - # We have CouchDB Puppet.features.add(:couchdb, :libs => ["couchrest"]) |
