From 9b42afd47701bb8a4c59f1a10ea648cd0640da3f Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Sat, 14 Jun 2014 00:26:00 +0400 Subject: fix parse of packege/version/repo Signed-off-by: Vasiliy Tolstov --- lib/chef/provider/package/paludis.rb | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/chef/provider/package/paludis.rb b/lib/chef/provider/package/paludis.rb index c69ba5cabb..aa02eec203 100644 --- a/lib/chef/provider/package/paludis.rb +++ b/lib/chef/provider/package/paludis.rb @@ -36,17 +36,21 @@ class Chef Chef::Log.debug("Checking package status for #{@new_resource.package_name}") installed = false + re = Regexp.new('(?(.*))[[:blank:]](?(.*))[[:blank:]](?(.*))$') shell_out!("cave -L warning print-ids -m \"#{@new_resource.package_name}\" -f \"%c/%p %v %r\n\"").stdout.each_line do |line| - case line - when /accounts/ + res = re.match(line) + case res[:repository] + when 'accounts', 'installed-accounts' next - when /(.*)\s+(.*)\s+(.*)\sinstalled/ - installed = true - @current_resource.version($2) - else - @candidate_version = $2 - @current_resource.version(nil) + when 'installed' + if res[:repository] == 'installed' + installed = true + @current_resource.version(res[:version]) + else + @candidate_version = res[:version] + @current_resource.version(nil) + end end end -- cgit v1.2.1