summaryrefslogtreecommitdiffstats
path: root/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'main.py')
-rwxr-xr-xmain.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/main.py b/main.py
index 7724a765..d2a303ca 100755
--- a/main.py
+++ b/main.py
@@ -101,6 +101,7 @@ global_options.add_option('--event-log',
101 dest='event_log', action='store', 101 dest='event_log', action='store',
102 help='filename of event log to append timeline to') 102 help='filename of event log to append timeline to')
103 103
104
104class _Repo(object): 105class _Repo(object):
105 def __init__(self, repodir): 106 def __init__(self, repodir):
106 self.repodir = repodir 107 self.repodir = repodir
@@ -300,11 +301,13 @@ repo: error:
300 cp %s %s 301 cp %s %s
301""" % (exp_str, WrapperPath(), repo_path), file=sys.stderr) 302""" % (exp_str, WrapperPath(), repo_path), file=sys.stderr)
302 303
304
303def _CheckRepoDir(repo_dir): 305def _CheckRepoDir(repo_dir):
304 if not repo_dir: 306 if not repo_dir:
305 print('no --repo-dir argument', file=sys.stderr) 307 print('no --repo-dir argument', file=sys.stderr)
306 sys.exit(1) 308 sys.exit(1)
307 309
310
308def _PruneOptions(argv, opt): 311def _PruneOptions(argv, opt):
309 i = 0 312 i = 0
310 while i < len(argv): 313 while i < len(argv):
@@ -320,6 +323,7 @@ def _PruneOptions(argv, opt):
320 continue 323 continue
321 i += 1 324 i += 1
322 325
326
323class _UserAgentHandler(urllib.request.BaseHandler): 327class _UserAgentHandler(urllib.request.BaseHandler):
324 def http_request(self, req): 328 def http_request(self, req):
325 req.add_header('User-Agent', user_agent.repo) 329 req.add_header('User-Agent', user_agent.repo)
@@ -329,6 +333,7 @@ class _UserAgentHandler(urllib.request.BaseHandler):
329 req.add_header('User-Agent', user_agent.repo) 333 req.add_header('User-Agent', user_agent.repo)
330 return req 334 return req
331 335
336
332def _AddPasswordFromUserInput(handler, msg, req): 337def _AddPasswordFromUserInput(handler, msg, req):
333 # If repo could not find auth info from netrc, try to get it from user input 338 # If repo could not find auth info from netrc, try to get it from user input
334 url = req.get_full_url() 339 url = req.get_full_url()
@@ -342,6 +347,7 @@ def _AddPasswordFromUserInput(handler, msg, req):
342 return 347 return
343 handler.passwd.add_password(None, url, user, password) 348 handler.passwd.add_password(None, url, user, password)
344 349
350
345class _BasicAuthHandler(urllib.request.HTTPBasicAuthHandler): 351class _BasicAuthHandler(urllib.request.HTTPBasicAuthHandler):
346 def http_error_401(self, req, fp, code, msg, headers): 352 def http_error_401(self, req, fp, code, msg, headers):
347 _AddPasswordFromUserInput(self, msg, req) 353 _AddPasswordFromUserInput(self, msg, req)
@@ -351,6 +357,7 @@ class _BasicAuthHandler(urllib.request.HTTPBasicAuthHandler):
351 def http_error_auth_reqed(self, authreq, host, req, headers): 357 def http_error_auth_reqed(self, authreq, host, req, headers):
352 try: 358 try:
353 old_add_header = req.add_header 359 old_add_header = req.add_header
360
354 def _add_header(name, val): 361 def _add_header(name, val):
355 val = val.replace('\n', '') 362 val = val.replace('\n', '')
356 old_add_header(name, val) 363 old_add_header(name, val)
@@ -365,6 +372,7 @@ class _BasicAuthHandler(urllib.request.HTTPBasicAuthHandler):
365 self.retried = 0 372 self.retried = 0
366 raise 373 raise
367 374
375
368class _DigestAuthHandler(urllib.request.HTTPDigestAuthHandler): 376class _DigestAuthHandler(urllib.request.HTTPDigestAuthHandler):
369 def http_error_401(self, req, fp, code, msg, headers): 377 def http_error_401(self, req, fp, code, msg, headers):
370 _AddPasswordFromUserInput(self, msg, req) 378 _AddPasswordFromUserInput(self, msg, req)
@@ -374,6 +382,7 @@ class _DigestAuthHandler(urllib.request.HTTPDigestAuthHandler):
374 def http_error_auth_reqed(self, auth_header, host, req, headers): 382 def http_error_auth_reqed(self, auth_header, host, req, headers):
375 try: 383 try:
376 old_add_header = req.add_header 384 old_add_header = req.add_header
385
377 def _add_header(name, val): 386 def _add_header(name, val):
378 val = val.replace('\n', '') 387 val = val.replace('\n', '')
379 old_add_header(name, val) 388 old_add_header(name, val)
@@ -388,6 +397,7 @@ class _DigestAuthHandler(urllib.request.HTTPDigestAuthHandler):
388 self.retried = 0 397 self.retried = 0
389 raise 398 raise
390 399
400
391class _KerberosAuthHandler(urllib.request.BaseHandler): 401class _KerberosAuthHandler(urllib.request.BaseHandler):
392 def __init__(self): 402 def __init__(self):
393 self.retried = 0 403 self.retried = 0
@@ -468,6 +478,7 @@ class _KerberosAuthHandler(urllib.request.BaseHandler):
468 kerberos.authGSSClientClean(self.context) 478 kerberos.authGSSClientClean(self.context)
469 self.context = None 479 self.context = None
470 480
481
471def init_http(): 482def init_http():
472 handlers = [_UserAgentHandler()] 483 handlers = [_UserAgentHandler()]
473 484
@@ -495,6 +506,7 @@ def init_http():
495 handlers.append(urllib.request.HTTPSHandler(debuglevel=1)) 506 handlers.append(urllib.request.HTTPSHandler(debuglevel=1))
496 urllib.request.install_opener(urllib.request.build_opener(*handlers)) 507 urllib.request.install_opener(urllib.request.build_opener(*handlers))
497 508
509
498def _Main(argv): 510def _Main(argv):
499 result = 0 511 result = 0
500 512
@@ -551,5 +563,6 @@ def _Main(argv):
551 TerminatePager() 563 TerminatePager()
552 sys.exit(result) 564 sys.exit(result)
553 565
566
554if __name__ == '__main__': 567if __name__ == '__main__':
555 _Main(sys.argv[1:]) 568 _Main(sys.argv[1:])