diff options
Diffstat (limited to 'lib/puppet/provider/package')
| -rwxr-xr-x | lib/puppet/provider/package/freebsd.rb | 19 | ||||
| -rwxr-xr-x | lib/puppet/provider/package/ports.rb | 7 |
2 files changed, 21 insertions, 5 deletions
diff --git a/lib/puppet/provider/package/freebsd.rb b/lib/puppet/provider/package/freebsd.rb index f98f3064e..18df015fd 100755 --- a/lib/puppet/provider/package/freebsd.rb +++ b/lib/puppet/provider/package/freebsd.rb @@ -18,11 +18,22 @@ Puppet::Type.type(:package).provide :freebsd, :parent => :openbsd do def install should = @resource.should(:ensure) - if @resource[:source] - return super + if @resource[:source] =~ /\/$/ + if @resource[:source] =~ /^(ftp|https?):/ + withenv :PACKAGESITE => @resource[:source] do + pkgadd "-r", @resource[:name] + end + else + withenv :PKG_PATH => @resource[:source] do + pkgadd @resource[:name] + end + end + else + if @resource[:source] + Puppet.warning "source is defined but does not have trailing slash, ignoring %s" % @resource[:source] + end + pkgadd "-r", @resource[:name] end - - pkgadd "-r", @resource[:name] end def query diff --git a/lib/puppet/provider/package/ports.rb b/lib/puppet/provider/package/ports.rb index 1cff30039..99e26ef23 100755 --- a/lib/puppet/provider/package/ports.rb +++ b/lib/puppet/provider/package/ports.rb @@ -72,8 +72,13 @@ Puppet::Type.type(:package).provide :ports, :parent => :freebsd, :source => :fre end def query + # support portorigin_glob such as "mail/postfix" + name = self.name + if name =~ /\// + name = self.name.split(/\//).slice(1) + end self.class.instances.each do |instance| - if instance.name == self.name + if instance.name == name return instance.properties end end |
