From 55a9009cbffcfc4fe5f81c24192a3b44cd95dc47 Mon Sep 17 00:00:00 2001 From: Ryan McBride Date: Tue, 25 Mar 2008 11:27:14 +0900 Subject: Pass source to pkg_add via the PKG_PATH environment variable if --- CHANGELOG | 5 +++++ lib/puppet/provider/package/openbsd.rb | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 387ae04e7..eb223d145 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ + Pass source to pkg_add via the PKG_PATH environment variable if + it ends in a '/' indicating it is a directory. Allows pkg_add + to resolve dependancies, and make it possible to specify packages + without version numbers. + Fixing #571 -- provider suitability is now checked at resource evaluation time, rather than resource instantiation time. This means that you don't catch your "errors" as early, but it also diff --git a/lib/puppet/provider/package/openbsd.rb b/lib/puppet/provider/package/openbsd.rb index 6c2e0895b..af590eb4d 100755 --- a/lib/puppet/provider/package/openbsd.rb +++ b/lib/puppet/provider/package/openbsd.rb @@ -2,6 +2,7 @@ require 'puppet/provider/package' # Packaging on OpenBSD. Doesn't work anywhere else that I know of. Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Package do + include Puppet::Util::Execution desc "OpenBSD's form of ``pkg_add`` support." commands :pkginfo => "pkg_info", :pkgadd => "pkg_add", :pkgdelete => "pkg_delete" @@ -58,7 +59,14 @@ Puppet::Type.type(:package).provide :openbsd, :parent => Puppet::Provider::Packa "You must specify a package source for BSD packages" end - pkgadd @resource[:source] + if @resource[:source] =~ /\/$/ + withenv :PKG_PATH => @resource[:source] do + pkgadd @resource[:name] + end + else + pkgadd @resource[:source] + end + end def query -- cgit