From adc69a2ee54071d76763ffd254375c61bc527da9 Mon Sep 17 00:00:00 2001 From: Matthew Hooker Date: Tue, 3 Sep 2013 16:45:14 -0700 Subject: [PATCH 1/3] we can either strip out the extra name and just hope it's installed. --- providers/pip.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/providers/pip.rb b/providers/pip.rb index e7010d2..a5a9aab 100644 --- a/providers/pip.rb +++ b/providers/pip.rb @@ -108,8 +108,16 @@ def current_installed_version @current_installed_version ||= begin delimeter = /==/ - version_check_cmd = "#{which_pip(new_resource)} freeze | grep -i '^#{new_resource.package_name}=='" - # incase you upgrade pip with pip! + # strip out extra name. + base_package_name = new_resource.package_name.match(/^([^\[]+)(\[.+\])?$/) + if base_package_name.nil? + base_package_name = new_resource.package_name + else + base_package_name = base_package_name[1] + end + version_check_cmd = "#{which_pip(new_resource)} freeze | grep -i '^#{base_package_name}=='" + + # in case you upgrade pip with pip! if new_resource.package_name.eql?('pip') delimeter = /\s/ version_check_cmd = "pip --version" From c18bd2995f9cbfdf78c7febb0c46237ebe639e4b Mon Sep 17 00:00:00 2001 From: Matthew Hooker Date: Tue, 3 Sep 2013 16:50:09 -0700 Subject: [PATCH 2/3] or always reinstall it. --- providers/pip.rb | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/providers/pip.rb b/providers/pip.rb index a5a9aab..8cfde43 100644 --- a/providers/pip.rb +++ b/providers/pip.rb @@ -108,22 +108,19 @@ def current_installed_version @current_installed_version ||= begin delimeter = /==/ - # strip out extra name. - base_package_name = new_resource.package_name.match(/^([^\[]+)(\[.+\])?$/) - if base_package_name.nil? - base_package_name = new_resource.package_name - else - base_package_name = base_package_name[1] - end - version_check_cmd = "#{which_pip(new_resource)} freeze | grep -i '^#{base_package_name}=='" + if new_resource.package_name.match(/^[^\[]+\[.+\]$/).nil? + version_check_cmd = "#{which_pip(new_resource)} freeze | grep -i '^#{new_resource.package_name}=='" - # in case you upgrade pip with pip! - if new_resource.package_name.eql?('pip') - delimeter = /\s/ - version_check_cmd = "pip --version" + # in case you upgrade pip with pip! + if new_resource.package_name.eql?('pip') + delimeter = /\s/ + version_check_cmd = "pip --version" + end + result = shell_out(version_check_cmd) + (result.exitstatus == 0) ? result.stdout.split(delimeter)[1].strip : nil + else + nil end - result = shell_out(version_check_cmd) - (result.exitstatus == 0) ? result.stdout.split(delimeter)[1].strip : nil end end From 3e25ceb9f16a91fe439e4db614559df13d85d9ba Mon Sep 17 00:00:00 2001 From: Matthew Hooker Date: Wed, 18 Sep 2013 18:20:47 -0700 Subject: [PATCH 3/3] remind myself why I made this fork --- fork_reason | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 fork_reason diff --git a/fork_reason b/fork_reason new file mode 100644 index 0000000..adef254 --- /dev/null +++ b/fork_reason @@ -0,0 +1,2 @@ +this was an attempt to fix https://tickets.opscode.com/browse/COOK-3540 +before I realized it was hopeless'