summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-12-19 22:47:37 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-12-19 22:47:37 +0000
commit1bdf3794184b45a4e14633785d0be5cd9320348b (patch)
treece8ef153fa6e49a1b6f57369aa93ee7c5352e5fb
parent253376a2add0e1d5d7828da5dd94eae18938f38b (diff)
downloadpuppet-1bdf3794184b45a4e14633785d0be5cd9320348b.tar.gz
puppet-1bdf3794184b45a4e14633785d0be5cd9320348b.tar.xz
puppet-1bdf3794184b45a4e14633785d0be5cd9320348b.zip
Applying patch from #384, by jgonzalez
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1956 980ebf18-57e1-0310-9a29-db15c13687c0
-rw-r--r--lib/puppet/provider/package/portage.rb13
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/puppet/provider/package/portage.rb b/lib/puppet/provider/package/portage.rb
index d6d78e6ac..3e4cc1e36 100644
--- a/lib/puppet/provider/package/portage.rb
+++ b/lib/puppet/provider/package/portage.rb
@@ -6,9 +6,8 @@ Puppet::Type.type(:package).provide :portage do
defaultfor :operatingsystem => :gentoo
def self.list
- search_format = /(\S+) (\S+) \[(.*)\] \[(\S*)\] ([\S]*) (.*)/
- result_fields = [:category, :name, :ensure, :version_available,
- :vendor, :description]
+ search_format = /(\S+) (\S+) \[(.*)\] \[([^\s:]*)(:\S*)?\] ([\S]*) (.*)/
+ result_fields = [:category, :name, :ensure, :version_available, :slot, :vendor, :description]
command = "#{command(:eix)} --format \"{installedversions}<category> <name> [<installedversions>] [<best>] <homepage> <description>{}\""
begin
@@ -20,7 +19,7 @@ Puppet::Type.type(:package).provide :portage do
if( match )
package = {}
- result_fields.zip( match.captures ) { |field, value| package[field] = value unless value.empty? }
+ result_fields.zip( match.captures ) { |field, value| package[field] = value unless !value or value.empty? }
package[:provider] = :portage
package[:ensure] = package[:ensure].split.last
@@ -61,8 +60,8 @@ Puppet::Type.type(:package).provide :portage do
end
def query
- search_format = /(\S+) (\S+) \[(.*)\] \[(\S*)\] ([\S]*) (.*)/
- result_fields = [:category, :name, :ensure, :version_available, :vendor, :description]
+ search_format = /(\S+) (\S+) \[(.*)\] \[([^\s:]*)(:\S*)?\] ([\S]*) (.*)/
+ result_fields = [:category, :name, :ensure, :version_available, :slot, :vendor, :description]
search_field = @model[:name].include?( '/' ) ? "--category-name" : "--name"
command = "#{command(:eix)} --format \"<category> <name> [<installedversions>] [<best>] <homepage> <description>\" --exact #{search_field} #{@model[:name]}"
@@ -76,7 +75,7 @@ Puppet::Type.type(:package).provide :portage do
if( match )
package = {}
- result_fields.zip( match.captures ) { |field, value| package[field] = value unless value.empty? }
+ result_fields.zip( match.captures ) { |field, value| package[field] = value unless !value or value.empty? }
if package[:ensure]
package[:ensure] = package[:ensure].split.last
else