summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/package/hpux.rb
blob: 4d5394643df169995ecfe12d5467cdf53d93e221 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# HP-UX packaging.

require 'puppet/provider/package'

Puppet::Type.type(:package).provide :hpux, :parent => Puppet::Provider::Package do

    desc "HP-UX's packaging system."

    commands :swinstall => "/usr/sbin/swinstall",
        :swlist => "/usr/sbin/swlist",
        :swremove => "/usr/sbin/swremove"

    confine :operatingsystem => "hp-ux"

    defaultfor :operatingsystem => "hp-ux"

    def self.instances
        # TODO:  This is very hard on HP-UX!
        []
    end

    # source and name are required
    def install
        raise ArgumentError, "source must be provided to install HP-UX packages" unless resource[:source]
        args = standard_args + ["-s", resource[:source], resource[:name]]
        swinstall(*args)
    end

    def query
            swlist resource[:name]
            {:ensure => :present}
    rescue
            {:ensure => :absent}
    end

    def uninstall
        args = standard_args + [resource[:name]]
        swremove(*args)
    end

    def standard_args
        ["-x", "mount_all_filesystems=false"]
    end
end