mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
downloader.rb: Downloader.https
* tool/downloader.rb (Downloader.https): extract a method instead of a global variable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
4afebfd2c6
commit
a3ddead991
1 changed files with 15 additions and 8 deletions
|
@ -1,7 +1,10 @@
|
||||||
require 'open-uri'
|
require 'open-uri'
|
||||||
begin
|
begin
|
||||||
require 'net/https'
|
require 'net/https'
|
||||||
$rubygems_schema = 'https'
|
rescue LoadError
|
||||||
|
https = 'http'
|
||||||
|
else
|
||||||
|
https = 'https'
|
||||||
|
|
||||||
# open-uri of ruby 2.2.0 accept an array of PEMs as ssl_ca_cert, but old
|
# open-uri of ruby 2.2.0 accept an array of PEMs as ssl_ca_cert, but old
|
||||||
# versions are not. so, patching OpenSSL::X509::Store#add_file instead.
|
# versions are not. so, patching OpenSSL::X509::Store#add_file instead.
|
||||||
|
@ -25,14 +28,19 @@ begin
|
||||||
files.is_a?(Array) ? false : orig_directory?(files)
|
files.is_a?(Array) ? false : orig_directory?(files)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
rescue LoadError
|
|
||||||
$rubygems_schema = 'http'
|
|
||||||
end
|
end
|
||||||
|
|
||||||
class Downloader
|
class Downloader
|
||||||
|
def self.https
|
||||||
|
if @@https != 'https'
|
||||||
|
warn "*** using http instead of https ***"
|
||||||
|
end
|
||||||
|
@@https
|
||||||
|
end
|
||||||
|
|
||||||
class GNU < self
|
class GNU < self
|
||||||
def self.download(name, *rest)
|
def self.download(name, *rest)
|
||||||
super("http://gcc.gnu.org/git/?p=gcc.git;a=blob_plain;f=#{name};hb=master", name, *rest)
|
super("#{https}://gcc.gnu.org/git/?p=gcc.git;a=blob_plain;f=#{name};hb=master", name, *rest)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -41,11 +49,8 @@ class Downloader
|
||||||
require 'rubygems'
|
require 'rubygems'
|
||||||
require 'rubygems/package'
|
require 'rubygems/package'
|
||||||
options[:ssl_ca_cert] = Dir.glob(File.expand_path("../lib/rubygems/ssl_certs/*.pem", File.dirname(__FILE__)))
|
options[:ssl_ca_cert] = Dir.glob(File.expand_path("../lib/rubygems/ssl_certs/*.pem", File.dirname(__FILE__)))
|
||||||
if $rubygems_schema != 'https'
|
|
||||||
warn "*** using http instead of https ***"
|
|
||||||
end
|
|
||||||
file = under(dir, name)
|
file = under(dir, name)
|
||||||
super("#{$rubygems_schema}://rubygems.org/downloads/#{name}", file, nil, ims, options) or
|
super("#{https}://rubygems.org/downloads/#{name}", file, nil, ims, options) or
|
||||||
return false
|
return false
|
||||||
policy = Gem::Security::LowSecurity
|
policy = Gem::Security::LowSecurity
|
||||||
(policy = policy.dup).ui = Gem::SilentUI.new if policy.respond_to?(:'ui=')
|
(policy = policy.dup).ui = Gem::SilentUI.new if policy.respond_to?(:'ui=')
|
||||||
|
@ -168,6 +173,8 @@ class Downloader
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Downloader.class_variable_set(:@@https, https.freeze)
|
||||||
|
|
||||||
if $0 == __FILE__
|
if $0 == __FILE__
|
||||||
ims = true
|
ims = true
|
||||||
until ARGV.empty?
|
until ARGV.empty?
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue