diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-08-14 06:21:03 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-08-14 06:21:03 +0000 |
| commit | 12452ee9ca294563f2e2724ff36f179004f9846f (patch) | |
| tree | bee6053e8164f4a8dbf214f1898fafecb1d61f2f /lib/puppet/provider/package/freebsd.rb | |
| parent | 4d6120a1f77cfe76fafbe32caa5d853449562376 (diff) | |
| download | puppet-12452ee9ca294563f2e2724ff36f179004f9846f.tar.gz puppet-12452ee9ca294563f2e2724ff36f179004f9846f.tar.xz puppet-12452ee9ca294563f2e2724ff36f179004f9846f.zip | |
Merging r1468 from the implementations branch with r1438 from when the branch was first created.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1469 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/provider/package/freebsd.rb')
| -rwxr-xr-x | lib/puppet/provider/package/freebsd.rb | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/puppet/provider/package/freebsd.rb b/lib/puppet/provider/package/freebsd.rb new file mode 100755 index 000000000..cd484d47a --- /dev/null +++ b/lib/puppet/provider/package/freebsd.rb @@ -0,0 +1,52 @@ +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 :info => "/usr/sbin/pkg_info", + :add => "/usr/sbin/pkg_add", + :delete => "/usr/sbin/pkg_delete" + + def self.listcmd + command(:info) + end + + def install + should = @model[:ensure] + + if @model[:source] + return super + end + + cmd = command(:add) + " -r " + @model[:name] + + begin + output = execute(cmd) + rescue Puppet::ExecutionFailure + raise Puppet::PackageError.new(output) + end + end + + def query + self.class.list + + if @model[:version] + return :listed + else + return nil + end + end + + def uninstall + cmd = "#{command(:delete)} %s-%s" % [@model[:name], @model[:version]] + begin + output = execute(cmd) + rescue Puppet::ExecutionFailure + raise Puppet::PackageError.new(output) + end + end +end + +# $Id$ |
