diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-04-03 17:08:21 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-04-03 17:08:21 +0000 |
| commit | 4daf2c13ae5cdab4ee0de1fcb8ea7f0fc7b3573a (patch) | |
| tree | 2c1f1c8c18c2f589b1c771422ed705eb040cf172 /lib | |
| parent | f37154e69e57049f2bf6870d2c524fa29c3c0e35 (diff) | |
| download | puppet-4daf2c13ae5cdab4ee0de1fcb8ea7f0fc7b3573a.tar.gz puppet-4daf2c13ae5cdab4ee0de1fcb8ea7f0fc7b3573a.tar.xz puppet-4daf2c13ae5cdab4ee0de1fcb8ea7f0fc7b3573a.zip | |
Adding apple package support, but it is very limited -- packages can only be installed, not upgraded or removed.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1055 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/puppet/type/package.rb | 2 | ||||
| -rwxr-xr-x | lib/puppet/type/package/apple.rb | 27 |
2 files changed, 29 insertions, 0 deletions
diff --git a/lib/puppet/type/package.rb b/lib/puppet/type/package.rb index ee978e11f..02a95289d 100644 --- a/lib/puppet/type/package.rb +++ b/lib/puppet/type/package.rb @@ -383,6 +383,7 @@ module Puppet when "fedora": @default = :yum when "redhat": @default = :rpm when "openbsd": @default = :bsd + when "darwin": @default = :apple else if Facter["kernel"] == "Linux" Puppet.warning "Defaulting to RPM for %s" % @@ -592,5 +593,6 @@ require 'puppet/type/package/rpm.rb' require 'puppet/type/package/yum.rb' require 'puppet/type/package/sun.rb' require 'puppet/type/package/bsd.rb' +require 'puppet/type/package/apple.rb' # $Id$ diff --git a/lib/puppet/type/package/apple.rb b/lib/puppet/type/package/apple.rb new file mode 100755 index 000000000..34d66ef37 --- /dev/null +++ b/lib/puppet/type/package/apple.rb @@ -0,0 +1,27 @@ +module Puppet + # OS X Packaging sucks. We can install packages, but that's about it. + Puppet.type(:package).newpkgtype(:apple) do + def query + if FileTest.exists?("/Library/Receipts/#{self[:name]}.pkg") + return {:name => self[:name], :ensure => :present} + else + return nil + end + end + + def install + source = nil + unless source = self[:source] + self.fail "Mac OS X packages must specify a package source" + end + + output = %x{/usr/sbin/installer -pkg #{source} -target / 2>&1} + + unless $? == 0 + raise Puppet::PackageError.new(output) + end + end + end +end + +# $Id$ |
