diff options
Diffstat (limited to 'main.py')
-rwxr-xr-x | main.py | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -22,6 +22,7 @@ if __name__ == '__main__': | |||
22 | del sys.argv[-1] | 22 | del sys.argv[-1] |
23 | del magic | 23 | del magic |
24 | 24 | ||
25 | import netrc | ||
25 | import optparse | 26 | import optparse |
26 | import os | 27 | import os |
27 | import re | 28 | import re |
@@ -254,6 +255,17 @@ class _UserAgentHandler(urllib2.BaseHandler): | |||
254 | def init_http(): | 255 | def init_http(): |
255 | handlers = [_UserAgentHandler()] | 256 | handlers = [_UserAgentHandler()] |
256 | 257 | ||
258 | mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() | ||
259 | try: | ||
260 | n = netrc.netrc() | ||
261 | for host in n.hosts: | ||
262 | p = n.hosts[host] | ||
263 | mgr.add_password(None, 'http://%s/' % host, p[0], p[2]) | ||
264 | mgr.add_password(None, 'https://%s/' % host, p[0], p[2]) | ||
265 | except netrc.NetrcParseError: | ||
266 | pass | ||
267 | handlers.append(urllib2.HTTPBasicAuthHandler(mgr)) | ||
268 | |||
257 | if 'http_proxy' in os.environ: | 269 | if 'http_proxy' in os.environ: |
258 | url = os.environ['http_proxy'] | 270 | url = os.environ['http_proxy'] |
259 | handlers.append(urllib2.ProxyHandler({'http': url, 'https': url})) | 271 | handlers.append(urllib2.ProxyHandler({'http': url, 'https': url})) |