Skip to content

Commit

Permalink
WIP: Use source in gemlist
Browse files Browse the repository at this point in the history
  • Loading branch information
alexjfisher committed Sep 21, 2016
1 parent b0a5a0c commit 1177e09
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions lib/puppet/provider/rvm_gem/gem.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,13 @@ def gemlist(hash)
command << "--http-proxy" << resource[:proxy_url]
end

if resource[:source] && source_uri(resource[:source]).scheme =~ /^http/
command << '--source' << resource[:source].to_s
end

list = []
begin
Puppet.debug("Running command #{command}")
list = execute(command).split("\n").collect do |set|
if gemhash = self.class.gemsplit(set)
gemhash[:provider] = :gem
Expand Down Expand Up @@ -76,7 +81,6 @@ def self.gemsplit(desc)
end
end


def install(useversion = true)
command = gembinary + ['install']
command << "-v" << resource[:ensure] if (! resource[:ensure].is_a? Symbol) and useversion
Expand All @@ -89,12 +93,7 @@ def install(useversion = true)
end

if source = resource[:source]
begin
uri = URI.parse(source)
rescue => detail
fail "Invalid source '#{uri}': #{detail}"
end

uri = source_uri(source)
case uri.scheme
when nil
# no URI scheme => interpret the source as a local file
Expand Down Expand Up @@ -123,6 +122,15 @@ def install(useversion = true)
self.fail "Could not install: #{output.chomp}" if output.include?("ERROR")
end

def source_uri(source)
begin
uri = URI.parse(source)
rescue => detail
fail "Invalid source '#{uri}': #{detail}"
end
uri
end

def latest
# This always gets the latest version available.
hash = gemlist(:justme => resource[:name])
Expand Down

0 comments on commit 1177e09

Please sign in to comment.