Sha256: 9c6c38008b2167722e786d72cb06336777994104b53ed6ff4a8c73e91d848d11

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

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

        def list
            packages = []

            Dir.entries("/Library/Receipts").find { |f|
                f =~ /\.pkg$/
            }.collect { |f|
                Puppet.type(:package).installedpkg(
                    :name => f.sub(/\.pkg/, ''),
                    :type => :apple,
                    :ensure => :installed
                )
            }
        end
    end
end

# $Id: apple.rb 1156 2006-05-01 01:07:47Z luke $

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
puppet-0.18.4 lib/puppet/type/package/apple.rb