diff options
Diffstat (limited to 'main.py')
-rwxr-xr-x | main.py | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -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 | |||
104 | class _Repo(object): | 105 | class _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 | |||
303 | def _CheckRepoDir(repo_dir): | 305 | def _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 | |||
308 | def _PruneOptions(argv, opt): | 311 | def _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 | |||
323 | class _UserAgentHandler(urllib.request.BaseHandler): | 327 | class _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 | |||
332 | def _AddPasswordFromUserInput(handler, msg, req): | 337 | def _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 | |||
345 | class _BasicAuthHandler(urllib.request.HTTPBasicAuthHandler): | 351 | class _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 | |||
368 | class _DigestAuthHandler(urllib.request.HTTPDigestAuthHandler): | 376 | class _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 | |||
391 | class _KerberosAuthHandler(urllib.request.BaseHandler): | 401 | class _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 | |||
471 | def init_http(): | 482 | def 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 | |||
498 | def _Main(argv): | 510 | def _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 | |||
554 | if __name__ == '__main__': | 567 | if __name__ == '__main__': |
555 | _Main(sys.argv[1:]) | 568 | _Main(sys.argv[1:]) |