diff options
author | Caleb Tennis <caleb.tennis@gmail.com> | 2011-12-21 12:37:46 -0500 |
---|---|---|
committer | Bryan McLellan <btm@opscode.com> | 2012-10-05 15:20:25 -0700 |
commit | 132b8d20d3d78ce90a11360b6aefd75c14f94eda (patch) | |
tree | c79af90e401ec1e895fbcc6e3cd722403e6d74cf /chef/lib | |
parent | 8ec6d971f6ae20b80137fcf89aa74345635863bc (diff) | |
download | chef-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.rb | 11 |
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 |