summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-04-20 01:02:29 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-04-20 01:02:29 +0000
commit3f9e918ee20ae9f7002dab983eab16a1461decfd (patch)
tree793e451e353aa6567eabf2569e5ae81dfa65e2ff /lib
parentc83bc9189ab8b5e9cb754d7228d8178cede0a37c (diff)
downloadpuppet-3f9e918ee20ae9f7002dab983eab16a1461decfd.tar.gz
puppet-3f9e918ee20ae9f7002dab983eab16a1461decfd.tar.xz
puppet-3f9e918ee20ae9f7002dab983eab16a1461decfd.zip
Adding freebsd ports support
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1121 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/type.rb4
-rw-r--r--lib/puppet/type/package.rb10
-rwxr-xr-xlib/puppet/type/package/openbsd.rb8
3 files changed, 16 insertions, 6 deletions
diff --git a/lib/puppet/type.rb b/lib/puppet/type.rb
index afea4dfa6..612c3d13f 100644
--- a/lib/puppet/type.rb
+++ b/lib/puppet/type.rb
@@ -1702,8 +1702,8 @@ class Type < Puppet::Element
# the other states matter.
changes = []
if @states.include?(:ensure) and ! @states[:ensure].insync?
- self.info "ensuring %s from %s" %
- [@states[:ensure].should, @states[:ensure].is]
+ #self.info "ensuring %s from %s" %
+ # [@states[:ensure].should, @states[:ensure].is]
changes = [Puppet::StateChange.new(@states[:ensure])]
# Else, if the 'ensure' state is correctly absent, then do
# nothing
diff --git a/lib/puppet/type/package.rb b/lib/puppet/type/package.rb
index 95bc17f35..ddf4f617d 100644
--- a/lib/puppet/type/package.rb
+++ b/lib/puppet/type/package.rb
@@ -104,9 +104,6 @@ module Puppet
# Alias the 'present' value.
aliasvalue(:installed, :present)
- #newvalue(:installed) do
- # self.set(:present)
- #end
newvalue(:latest) do
unless @parent.respond_to?(:latest)
@@ -144,6 +141,11 @@ module Puppet
return true
end
when :latest
+ # Short-circuit packages that are not present
+ if @is == :absent
+ return false
+ end
+
unless @parent.respond_to?(:latest)
self.fail(
"Package type %s does not support specifying 'latest'" %
@@ -396,7 +398,7 @@ module Puppet
when "centos": @default = :rpm
when "fedora": @default = :yum
when "redhat": @default = :rpm
- when "freebsd": @default = :freebsd
+ when "freebsd": @default = :ports
when "openbsd": @default = :openbsd
when "darwin": @default = :apple
else
diff --git a/lib/puppet/type/package/openbsd.rb b/lib/puppet/type/package/openbsd.rb
index 56db2d0a3..dc88980bf 100755
--- a/lib/puppet/type/package/openbsd.rb
+++ b/lib/puppet/type/package/openbsd.rb
@@ -46,6 +46,7 @@ module Puppet
def list
packages = []
+ debug "Executing %s" % listcmd().inspect
# list out all of the packages
open("| #{listcmd()}") { |process|
# our regex for matching dpkg output
@@ -72,6 +73,13 @@ module Puppet
}
}
+ # Mark any packages we didn't find as absent
+ Puppet.type(:package).each do |pkg|
+ unless packages.include? pkg
+ pkg.is = [:ensure, :absent]
+ end
+ end
+
return packages
end