Sha256: 3097396f8e3d68ad3841dff0c5285e387a9f55922276dea79854cf3b04fcea77

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

Puppet::Type.type(:package).provide :freebsd, :parent => :openbsd do
    desc "The specific form of package management on FreeBSD.  This is an
        extremely quirky packaging system, in that it freely mixes between
        ports and packages.  Apparently all of the tools are written in Ruby,
        so there are plans to rewrite this support to directly use those
        libraries."

    commands :pkginfo => "/usr/sbin/pkg_info",
             :pkgadd => "/usr/sbin/pkg_add",
             :pkgdelete => "/usr/sbin/pkg_delete"
    
    confine :operatingsystem => :freebsd

    def self.listcmd
        command(:pkginfo)
    end

    def install
        should = @resource.should(:ensure)

        if @resource[:source]
            return super
        end

        pkgadd "-r", @resource[:name]
    end

    def query
        self.class.instances.each do |provider|
            if provider.name == @resource.name
                return provider.properties
            end
        end
        return nil
    end

    def uninstall
        pkgdelete "%s-%s" % [@resource[:name], @resource.should(:ensure)]
    end
end

# $Id: freebsd.rb 2555 2007-06-08 17:20:00Z luke $

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
puppet-0.23.0 lib/puppet/provider/package/freebsd.rb
puppet-0.23.2 lib/puppet/provider/package/freebsd.rb
puppet-0.23.1 lib/puppet/provider/package/freebsd.rb