diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-12-19 22:47:37 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-12-19 22:47:37 +0000 |
| commit | 1bdf3794184b45a4e14633785d0be5cd9320348b (patch) | |
| tree | ce8ef153fa6e49a1b6f57369aa93ee7c5352e5fb | |
| parent | 253376a2add0e1d5d7828da5dd94eae18938f38b (diff) | |
| download | puppet-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.rb | 13 |
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 |
