diff options
| author | Sarah Owens <sarato@inkylabs.com> | 2012-11-01 22:59:27 -0700 |
|---|---|---|
| committer | Sarah Owens <sarato@inkylabs.com> | 2012-11-13 17:33:56 -0800 |
| commit | cecd1d864fc3cf02cf50d367111e0d0e173c5dc6 (patch) | |
| tree | b4f660400560dce21cd7a00ffe5a5d74b54bcb81 /subcmds/sync.py | |
| parent | fc241240d828d7e8302dc0876608a9d27ae1cbc7 (diff) | |
| download | git-repo-cecd1d864fc3cf02cf50d367111e0d0e173c5dc6.tar.gz | |
Change print statements to work in python3
This is part of a series of changes to introduce Python3 support.
Change-Id: I373be5de7141aa127d7debdbce1df39148dbec32
Diffstat (limited to 'subcmds/sync.py')
| -rw-r--r-- | subcmds/sync.py | 102 |
1 files changed, 54 insertions, 48 deletions
diff --git a/subcmds/sync.py b/subcmds/sync.py index d6389118..a64f2c45 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | # See the License for the specific language governing permissions and | 13 | # See the License for the specific language governing permissions and |
| 14 | # limitations under the License. | 14 | # limitations under the License. |
| 15 | 15 | ||
| 16 | from __future__ import print_function | ||
| 16 | import netrc | 17 | import netrc |
| 17 | from optparse import SUPPRESS_HELP | 18 | from optparse import SUPPRESS_HELP |
| 18 | import os | 19 | import os |
| @@ -234,9 +235,10 @@ later is required to fix a server side protocol bug. | |||
| 234 | did_lock = True | 235 | did_lock = True |
| 235 | 236 | ||
| 236 | if not success: | 237 | if not success: |
| 237 | print >>sys.stderr, 'error: Cannot fetch %s' % project.name | 238 | print('error: Cannot fetch %s' % project.name, file=sys.stderr) |
| 238 | if opt.force_broken: | 239 | if opt.force_broken: |
| 239 | print >>sys.stderr, 'warn: --force-broken, continuing to sync' | 240 | print('warn: --force-broken, continuing to sync', |
| 241 | file=sys.stderr) | ||
| 240 | else: | 242 | else: |
| 241 | raise _FetchError() | 243 | raise _FetchError() |
| 242 | 244 | ||
| @@ -265,9 +267,9 @@ later is required to fix a server side protocol bug. | |||
| 265 | clone_bundle=not opt.no_clone_bundle): | 267 | clone_bundle=not opt.no_clone_bundle): |
| 266 | fetched.add(project.gitdir) | 268 | fetched.add(project.gitdir) |
| 267 | else: | 269 | else: |
| 268 | print >>sys.stderr, 'error: Cannot fetch %s' % project.name | 270 | print('error: Cannot fetch %s' % project.name, file=sys.stderr) |
| 269 | if opt.force_broken: | 271 | if opt.force_broken: |
| 270 | print >>sys.stderr, 'warn: --force-broken, continuing to sync' | 272 | print('warn: --force-broken, continuing to sync', file=sys.stderr) |
| 271 | else: | 273 | else: |
| 272 | sys.exit(1) | 274 | sys.exit(1) |
| 273 | else: | 275 | else: |
| @@ -300,7 +302,7 @@ later is required to fix a server side protocol bug. | |||
| 300 | 302 | ||
| 301 | # If we saw an error, exit with code 1 so that other scripts can check. | 303 | # If we saw an error, exit with code 1 so that other scripts can check. |
| 302 | if err_event.isSet(): | 304 | if err_event.isSet(): |
| 303 | print >>sys.stderr, '\nerror: Exited sync due to fetch errors' | 305 | print('\nerror: Exited sync due to fetch errors', file=sys.stderr) |
| 304 | sys.exit(1) | 306 | sys.exit(1) |
| 305 | 307 | ||
| 306 | pm.end() | 308 | pm.end() |
| @@ -353,7 +355,7 @@ later is required to fix a server side protocol bug. | |||
| 353 | t.join() | 355 | t.join() |
| 354 | 356 | ||
| 355 | if err_event.isSet(): | 357 | if err_event.isSet(): |
| 356 | print >>sys.stderr, '\nerror: Exited sync due to gc errors' | 358 | print('\nerror: Exited sync due to gc errors', file=sys.stderr) |
| 357 | sys.exit(1) | 359 | sys.exit(1) |
| 358 | 360 | ||
| 359 | def UpdateProjectList(self): | 361 | def UpdateProjectList(self): |
| @@ -390,12 +392,14 @@ later is required to fix a server side protocol bug. | |||
| 390 | groups = None) | 392 | groups = None) |
| 391 | 393 | ||
| 392 | if project.IsDirty(): | 394 | if project.IsDirty(): |
| 393 | print >>sys.stderr, 'error: Cannot remove project "%s": \ | 395 | print('error: Cannot remove project "%s": uncommitted changes' |
| 394 | uncommitted changes are present' % project.relpath | 396 | 'are present' % project.relpath, file=sys.stderr) |
| 395 | print >>sys.stderr, ' commit changes, then run sync again' | 397 | print(' commit changes, then run sync again', |
| 398 | file=sys.stderr) | ||
| 396 | return -1 | 399 | return -1 |
| 397 | else: | 400 | else: |
| 398 | print >>sys.stderr, 'Deleting obsolete path %s' % project.worktree | 401 | print('Deleting obsolete path %s' % project.worktree, |
| 402 | file=sys.stderr) | ||
| 399 | shutil.rmtree(project.worktree) | 403 | shutil.rmtree(project.worktree) |
| 400 | # Try deleting parent subdirs if they are empty | 404 | # Try deleting parent subdirs if they are empty |
| 401 | project_dir = os.path.dirname(project.worktree) | 405 | project_dir = os.path.dirname(project.worktree) |
| @@ -423,24 +427,24 @@ uncommitted changes are present' % project.relpath | |||
| 423 | self.jobs = min(self.jobs, (soft_limit - 5) / 3) | 427 | self.jobs = min(self.jobs, (soft_limit - 5) / 3) |
| 424 | 428 | ||
| 425 | if opt.network_only and opt.detach_head: | 429 | if opt.network_only and opt.detach_head: |
| 426 | print >>sys.stderr, 'error: cannot combine -n and -d' | 430 | print('error: cannot combine -n and -d', file=sys.stderr) |
| 427 | sys.exit(1) | 431 | sys.exit(1) |
| 428 | if opt.network_only and opt.local_only: | 432 | if opt.network_only and opt.local_only: |
| 429 | print >>sys.stderr, 'error: cannot combine -n and -l' | 433 | print('error: cannot combine -n and -l', file=sys.stderr) |
| 430 | sys.exit(1) | 434 | sys.exit(1) |
| 431 | if opt.manifest_name and opt.smart_sync: | 435 | if opt.manifest_name and opt.smart_sync: |
| 432 | print >>sys.stderr, 'error: cannot combine -m and -s' | 436 | print('error: cannot combine -m and -s', file=sys.stderr) |
| 433 | sys.exit(1) | 437 | sys.exit(1) |
| 434 | if opt.manifest_name and opt.smart_tag: | 438 | if opt.manifest_name and opt.smart_tag: |
| 435 | print >>sys.stderr, 'error: cannot combine -m and -t' | 439 | print('error: cannot combine -m and -t', file=sys.stderr) |
| 436 | sys.exit(1) | 440 | sys.exit(1) |
| 437 | if opt.manifest_server_username or opt.manifest_server_password: | 441 | if opt.manifest_server_username or opt.manifest_server_password: |
| 438 | if not (opt.smart_sync or opt.smart_tag): | 442 | if not (opt.smart_sync or opt.smart_tag): |
| 439 | print >>sys.stderr, 'error: -u and -p may only be combined with ' \ | 443 | print('error: -u and -p may only be combined with -s or -t', |
| 440 | '-s or -t' | 444 | file=sys.stderr) |
| 441 | sys.exit(1) | 445 | sys.exit(1) |
| 442 | if None in [opt.manifest_server_username, opt.manifest_server_password]: | 446 | if None in [opt.manifest_server_username, opt.manifest_server_password]: |
| 443 | print >>sys.stderr, 'error: both -u and -p must be given' | 447 | print('error: both -u and -p must be given', file=sys.stderr) |
| 444 | sys.exit(1) | 448 | sys.exit(1) |
| 445 | 449 | ||
| 446 | if opt.manifest_name: | 450 | if opt.manifest_name: |
| @@ -448,8 +452,8 @@ uncommitted changes are present' % project.relpath | |||
| 448 | 452 | ||
| 449 | if opt.smart_sync or opt.smart_tag: | 453 | if opt.smart_sync or opt.smart_tag: |
| 450 | if not self.manifest.manifest_server: | 454 | if not self.manifest.manifest_server: |
| 451 | print >>sys.stderr, \ | 455 | print('error: cannot smart sync: no manifest server defined in' |
| 452 | 'error: cannot smart sync: no manifest server defined in manifest' | 456 | 'manifest', file=sys.stderr) |
| 453 | sys.exit(1) | 457 | sys.exit(1) |
| 454 | 458 | ||
| 455 | manifest_server = self.manifest.manifest_server | 459 | manifest_server = self.manifest.manifest_server |
| @@ -464,7 +468,8 @@ uncommitted changes are present' % project.relpath | |||
| 464 | try: | 468 | try: |
| 465 | info = netrc.netrc() | 469 | info = netrc.netrc() |
| 466 | except IOError: | 470 | except IOError: |
| 467 | print >>sys.stderr, '.netrc file does not exist or could not be opened' | 471 | print('.netrc file does not exist or could not be opened', |
| 472 | file=sys.stderr) | ||
| 468 | else: | 473 | else: |
| 469 | try: | 474 | try: |
| 470 | parse_result = urlparse.urlparse(manifest_server) | 475 | parse_result = urlparse.urlparse(manifest_server) |
| @@ -474,10 +479,10 @@ uncommitted changes are present' % project.relpath | |||
| 474 | except TypeError: | 479 | except TypeError: |
| 475 | # TypeError is raised when the given hostname is not present | 480 | # TypeError is raised when the given hostname is not present |
| 476 | # in the .netrc file. | 481 | # in the .netrc file. |
| 477 | print >>sys.stderr, 'No credentials found for %s in .netrc' % \ | 482 | print('No credentials found for %s in .netrc' |
| 478 | parse_result.hostname | 483 | % parse_result.hostname, file=sys.stderr) |
| 479 | except netrc.NetrcParseError as e: | 484 | except netrc.NetrcParseError as e: |
| 480 | print >>sys.stderr, 'Error parsing .netrc file: %s' % e | 485 | print('Error parsing .netrc file: %s' % e, file=sys.stderr) |
| 481 | 486 | ||
| 482 | if (username and password): | 487 | if (username and password): |
| 483 | manifest_server = manifest_server.replace('://', '://%s:%s@' % | 488 | manifest_server = manifest_server.replace('://', '://%s:%s@' % |
| @@ -516,20 +521,21 @@ uncommitted changes are present' % project.relpath | |||
| 516 | finally: | 521 | finally: |
| 517 | f.close() | 522 | f.close() |
| 518 | except IOError: | 523 | except IOError: |
| 519 | print >>sys.stderr, 'error: cannot write manifest to %s' % \ | 524 | print('error: cannot write manifest to %s' % manifest_path, |
| 520 | manifest_path | 525 | file=sys.stderr) |
| 521 | sys.exit(1) | 526 | sys.exit(1) |
| 522 | self.manifest.Override(manifest_name) | 527 | self.manifest.Override(manifest_name) |
| 523 | else: | 528 | else: |
| 524 | print >>sys.stderr, 'error: %s' % manifest_str | 529 | print('error: %s' % manifest_str, file=sys.stderr) |
| 525 | sys.exit(1) | 530 | sys.exit(1) |
| 526 | except (socket.error, IOError, xmlrpclib.Fault) as e: | 531 | except (socket.error, IOError, xmlrpclib.Fault) as e: |
| 527 | print >>sys.stderr, 'error: cannot connect to manifest server %s:\n%s' % ( | 532 | print('error: cannot connect to manifest server %s:\n%s' |
| 528 | self.manifest.manifest_server, e) | 533 | % (self.manifest.manifest_server, e), file=sys.stderr) |
| 529 | sys.exit(1) | 534 | sys.exit(1) |
| 530 | except xmlrpclib.ProtocolError as e: | 535 | except xmlrpclib.ProtocolError as e: |
| 531 | print >>sys.stderr, 'error: cannot connect to manifest server %s:\n%d %s' % ( | 536 | print('error: cannot connect to manifest server %s:\n%d %s' |
| 532 | self.manifest.manifest_server, e.errcode, e.errmsg) | 537 | % (self.manifest.manifest_server, e.errcode, e.errmsg), |
| 538 | file=sys.stderr) | ||
| 533 | sys.exit(1) | 539 | sys.exit(1) |
| 534 | 540 | ||
| 535 | rp = self.manifest.repoProject | 541 | rp = self.manifest.repoProject |
| @@ -585,14 +591,14 @@ uncommitted changes are present' % project.relpath | |||
| 585 | if project.worktree: | 591 | if project.worktree: |
| 586 | project.Sync_LocalHalf(syncbuf) | 592 | project.Sync_LocalHalf(syncbuf) |
| 587 | pm.end() | 593 | pm.end() |
| 588 | print >>sys.stderr | 594 | print(file=sys.stderr) |
| 589 | if not syncbuf.Finish(): | 595 | if not syncbuf.Finish(): |
| 590 | sys.exit(1) | 596 | sys.exit(1) |
| 591 | 597 | ||
| 592 | # If there's a notice that's supposed to print at the end of the sync, print | 598 | # If there's a notice that's supposed to print at the end of the sync, print |
| 593 | # it now... | 599 | # it now... |
| 594 | if self.manifest.notice: | 600 | if self.manifest.notice: |
| 595 | print self.manifest.notice | 601 | print(self.manifest.notice) |
| 596 | 602 | ||
| 597 | def _PostRepoUpgrade(manifest, quiet=False): | 603 | def _PostRepoUpgrade(manifest, quiet=False): |
| 598 | wrapper = WrapperModule() | 604 | wrapper = WrapperModule() |
| @@ -604,27 +610,28 @@ def _PostRepoUpgrade(manifest, quiet=False): | |||
| 604 | 610 | ||
| 605 | def _PostRepoFetch(rp, no_repo_verify=False, verbose=False): | 611 | def _PostRepoFetch(rp, no_repo_verify=False, verbose=False): |
| 606 | if rp.HasChanges: | 612 | if rp.HasChanges: |
| 607 | print >>sys.stderr, 'info: A new version of repo is available' | 613 | print('info: A new version of repo is available', file=sys.stderr) |
| 608 | print >>sys.stderr, '' | 614 | print(file=sys.stderr) |
| 609 | if no_repo_verify or _VerifyTag(rp): | 615 | if no_repo_verify or _VerifyTag(rp): |
| 610 | syncbuf = SyncBuffer(rp.config) | 616 | syncbuf = SyncBuffer(rp.config) |
| 611 | rp.Sync_LocalHalf(syncbuf) | 617 | rp.Sync_LocalHalf(syncbuf) |
| 612 | if not syncbuf.Finish(): | 618 | if not syncbuf.Finish(): |
| 613 | sys.exit(1) | 619 | sys.exit(1) |
| 614 | print >>sys.stderr, 'info: Restarting repo with latest version' | 620 | print('info: Restarting repo with latest version', file=sys.stderr) |
| 615 | raise RepoChangedException(['--repo-upgraded']) | 621 | raise RepoChangedException(['--repo-upgraded']) |
| 616 | else: | 622 | else: |
| 617 | print >>sys.stderr, 'warning: Skipped upgrade to unverified version' | 623 | print('warning: Skipped upgrade to unverified version', file=sys.stderr) |
| 618 | else: | 624 | else: |
| 619 | if verbose: | 625 | if verbose: |
| 620 | print >>sys.stderr, 'repo version %s is current' % rp.work_git.describe(HEAD) | 626 | print('repo version %s is current' % rp.work_git.describe(HEAD), |
| 627 | file=sys.stderr) | ||
| 621 | 628 | ||
| 622 | def _VerifyTag(project): | 629 | def _VerifyTag(project): |
| 623 | gpg_dir = os.path.expanduser('~/.repoconfig/gnupg') | 630 | gpg_dir = os.path.expanduser('~/.repoconfig/gnupg') |
| 624 | if not os.path.exists(gpg_dir): | 631 | if not os.path.exists(gpg_dir): |
| 625 | print >>sys.stderr,\ | 632 | print('warning: GnuPG was not available during last "repo init"\n' |
| 626 | """warning: GnuPG was not available during last "repo init" | 633 | 'warning: Cannot automatically authenticate repo."""', |
| 627 | warning: Cannot automatically authenticate repo.""" | 634 | file=sys.stderr) |
| 628 | return True | 635 | return True |
| 629 | 636 | ||
| 630 | try: | 637 | try: |
| @@ -638,10 +645,9 @@ warning: Cannot automatically authenticate repo.""" | |||
| 638 | if rev.startswith(R_HEADS): | 645 | if rev.startswith(R_HEADS): |
| 639 | rev = rev[len(R_HEADS):] | 646 | rev = rev[len(R_HEADS):] |
| 640 | 647 | ||
| 641 | print >>sys.stderr | 648 | print(file=sys.stderr) |
| 642 | print >>sys.stderr,\ | 649 | print("warning: project '%s' branch '%s' is not signed" |
| 643 | "warning: project '%s' branch '%s' is not signed" \ | 650 | % (project.name, rev), file=sys.stderr) |
| 644 | % (project.name, rev) | ||
| 645 | return False | 651 | return False |
| 646 | 652 | ||
| 647 | env = os.environ.copy() | 653 | env = os.environ.copy() |
| @@ -660,10 +666,10 @@ warning: Cannot automatically authenticate repo.""" | |||
| 660 | proc.stderr.close() | 666 | proc.stderr.close() |
| 661 | 667 | ||
| 662 | if proc.wait() != 0: | 668 | if proc.wait() != 0: |
| 663 | print >>sys.stderr | 669 | print(file=sys.stderr) |
| 664 | print >>sys.stderr, out | 670 | print(out, file=sys.stderr) |
| 665 | print >>sys.stderr, err | 671 | print(err, file=sys.stderr) |
| 666 | print >>sys.stderr | 672 | print(file=sys.stderr) |
| 667 | return False | 673 | return False |
| 668 | return True | 674 | return True |
| 669 | 675 | ||
