summaryrefslogtreecommitdiff
path: root/chef/lib
diff options
context:
space:
mode:
authorCaleb Tennis <caleb.tennis@gmail.com>2011-12-21 12:37:46 -0500
committerBryan McLellan <btm@opscode.com>2012-10-05 15:20:25 -0700
commit132b8d20d3d78ce90a11360b6aefd75c14f94eda (patch)
treec79af90e401ec1e895fbcc6e3cd722403e6d74cf /chef/lib
parent8ec6d971f6ae20b80137fcf89aa74345635863bc (diff)
downloadchef-132b8d20d3d78ce90a11360b6aefd75c14f94eda.tar.gz
[CHEF-2826] - Add support for custom arch repos
Diffstat (limited to 'chef/lib')
-rw-r--r--chef/lib/chef/provider/package/pacman.rb11
1 files changed, 10 insertions, 1 deletions
diff --git a/chef/lib/chef/provider/package/pacman.rb b/chef/lib/chef/provider/package/pacman.rb
index 0df909a092..82cd083225 100644
--- a/chef/lib/chef/provider/package/pacman.rb
+++ b/chef/lib/chef/provider/package/pacman.rb
@@ -53,10 +53,19 @@ class Chef
def candidate_version
return @candidate_version if @candidate_version
+ repos = ["extra","core","community"]
+
+ if(::File.exists?("/etc/pacman.conf"))
+ pacman = ::File.read("/etc/pacman.conf")
+ repos = pacman.scan(/\[(.+)\]/).flatten
+ end
+
+ package_repos = repos.join("|")
+
status = popen4("pacman -Ss #{@new_resource.package_name}") do |pid, stdin, stdout, stderr|
stdout.each do |line|
case line
- when /^(extra|core|community)\/#{Regexp.escape(@new_resource.package_name)} (.+)$/
+ when /^(#{package_repos})\/#{Regexp.escape(@new_resource.package_name)} (.+)$/
# $2 contains a string like "4.4.0-1 (kde kdenetwork)" or "3.10-4 (base)"
# simply split by space and use first token
@candidate_version = $2.split(" ").first