OSDN Git Service

165d30933f3899e45aacb42b1659f3231008b404
[osdn-codes/osdn-cli.git] / lib / osdn / cli / overrides.rb
1 require 'typhoeus/easy_factory'
2
3 module Typhoeus
4   class EasyFactory
5     alias_method :get_orig, :get
6     def get(*args)
7       easy = get_orig(*args)
8       if ENV['CURL_CA_BUNDLE']
9         Ethon::Curl.set_option(:cainfo, ENV['CURL_CA_BUNDLE'], easy.handle)
10       else
11         ["#{ENV['HOME']}/.config/osdn/ca-certificates.crt"] + %w(
12            /usr/local/share/curl/curl-ca-bundle.crt
13            /usr/share/curl/ca-bundle.crt
14            /etc/ssl/certs/ca-certificates.crt
15            /etc/ssl/certs/ca-certificates.pem
16            /etc/pki/tls/certs/ca-bundle.crt
17            /etc/pki/tls/certs/ca-bundle.pem
18            /etc/ssl/ca-bundle.pem
19         ).each do |ca|
20           next unless File.exists? ca
21           Ethon::Curl.set_option(:cainfo, ca, easy.handle)
22         end
23       end
24       if OSDN::CLI._show_progress
25         Ethon::Curl.set_option(:noprogress, false, easy.handle)
26       else
27         Ethon::Curl.set_option(:noprogress, true, easy.handle)
28       end
29       easy
30     end
31   end
32 end