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:]) |
