lib/scout/command/sign.rb in scout-5.4.6.alpha vs lib/scout/command/sign.rb in scout-5.5.0
- old
+ new
@@ -9,11 +9,11 @@
CA_FILE = File.join( File.dirname(__FILE__),
*%w[.. .. .. data cacert.pem] )
VERIFY_MODE = OpenSSL::SSL::VERIFY_PEER | OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT
def run
- url, *provided_options = @args
+ url = @args.first
# read the plugin_code from the file specified
if url.nil? or url == ''
puts "Please specify the path to the plugin (scout sign /path/to/plugin.rb)"
return
end
@@ -33,10 +33,16 @@
code_signature = private_key.sign( OpenSSL::Digest::SHA1.new, code)
sig=Base64.encode64(code_signature)
puts "Posting Signature..."
uri = URI.parse(url)
- http = Net::HTTP.new(uri.host, uri.port)
+
+ # take care of http/https proxy, if specified in command line options
+ # Given a blank string, the proxy_uri URI instance's host/port/user/pass will be nil
+ # Net::HTTP::Proxy returns a regular Net::HTTP class if the first argument (host) is nil
+ proxy_uri = URI.parse(uri.is_a?(URI::HTTPS) ? @https_proxy : @http_proxy)
+ http=Net::HTTP::Proxy(proxy_uri.host,proxy_uri.port,proxy_uri.user,proxy_uri.port).new(uri.host, uri.port)
+
if uri.is_a?(URI::HTTPS)
http.use_ssl = true
http.ca_file = CA_FILE
http.verify_mode = VERIFY_MODE
end