summaryrefslogtreecommitdiffstats
path: root/lib/puppet/provider/package/aptitude.rb
blob: 699df0e51ff91d8362b150997b7498d9dd81844d (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
Puppet::Type.type(:package).provide :aptitude, :parent => :apt, :source => :dpkg do
    desc "Package management via ``aptitude``."

    has_feature :versionable

    commands :aptitude => "/usr/bin/aptitude"
    commands :aptcache => "/usr/bin/apt-cache"

    ENV['DEBIAN_FRONTEND'] = "noninteractive"

    def aptget(*args)
        args.flatten!
        # Apparently aptitude hasn't always supported a -q flag.
        if args.include?("-q")
            args.delete("-q")
        end
        output = aptitude(*args)

        # Yay, stupid aptitude doesn't throw an error when the package is missing.
        if args.include?(:install) and output =~ /Couldn't find any package/
            raise Puppet::Error.new(
                "Could not find package %s" % self.name
            )
        end
    end

    def purge
        aptitude '-y', 'purge', @resource[:name]
	end
end