$NetBSD: patch-ad,v 1.4 2014/01/02 01:41:48 tonnerre Exp $

Add NetBSD and update support to the pkgin provider.

--- lib/puppet/provider/package/pkgin.rb.orig	2013-04-07 00:25:33.000000000 +0000
+++ lib/puppet/provider/package/pkgin.rb
@@ -5,9 +5,9 @@ Puppet::Type.type(:package).provide :pkg
 
   commands :pkgin => "pkgin"
 
-  defaultfor :operatingsystem => :dragonfly
+  defaultfor :operatingsystem => [:dragonfly, :netbsd]
 
-  has_feature :installable, :uninstallable
+  has_feature :installable, :uninstallable, :upgradeable
 
   def self.parse_pkgin_line(package, force_status=nil)
 
@@ -59,4 +59,20 @@ Puppet::Type.type(:package).provide :pkg
   def uninstall
     pkgin("-y", :remove, resource[:name])
   end
+
+  def update
+    pkgin("-y", :install, resource[:name])
+  end
+
+  def latest
+    output = pkgin("se", @resource[:name])
+    pat = @resource[:name]
+
+    if output =~ /^#{pat}-(\d\S*)\s/
+      return $1
+    else
+      self.err "Could not find latest version of %s" % pat
+      return nil
+    end
+  end
 end
