OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 | 2 |
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 """This module uprevs a given package's ebuild to the next revision.""" | 7 """This module uprevs a given package's ebuild to the next revision.""" |
8 | 8 |
9 | 9 |
10 import fileinput | 10 import fileinput |
(...skipping 14 matching lines...) Expand all Loading... |
25 gflags.DEFINE_string('drop_file', None, | 25 gflags.DEFINE_string('drop_file', None, |
26 'File to list packages that were revved.') | 26 'File to list packages that were revved.') |
27 gflags.DEFINE_boolean('dryrun', False, | 27 gflags.DEFINE_boolean('dryrun', False, |
28 'Passes dry-run to git push if pushing a change.') | 28 'Passes dry-run to git push if pushing a change.') |
29 gflags.DEFINE_string('overlays', '', | 29 gflags.DEFINE_string('overlays', '', |
30 'Colon-separated list of overlays to modify.', | 30 'Colon-separated list of overlays to modify.', |
31 short_name='o') | 31 short_name='o') |
32 gflags.DEFINE_string('packages', '', | 32 gflags.DEFINE_string('packages', '', |
33 'Colon-separated list of packages to mark as stable.', | 33 'Colon-separated list of packages to mark as stable.', |
34 short_name='p') | 34 short_name='p') |
35 gflags.DEFINE_string('push_options', '', | |
36 'Options to use with git-cl push using push command.') | |
37 gflags.DEFINE_string('srcroot', '%s/trunk/src' % os.environ['HOME'], | 35 gflags.DEFINE_string('srcroot', '%s/trunk/src' % os.environ['HOME'], |
38 'Path to root src directory.', | 36 'Path to root src directory.', |
39 short_name='r') | 37 short_name='r') |
40 gflags.DEFINE_string('tracking_branch', 'cros/master', | 38 gflags.DEFINE_string('tracking_branch', 'cros/master', |
41 'Used with commit to specify branch to track against.', | 39 'Used with commit to specify branch to track against.', |
42 short_name='t') | 40 short_name='t') |
43 gflags.DEFINE_boolean('verbose', False, | 41 gflags.DEFINE_boolean('verbose', False, |
44 'Prints out verbose information about what is going on.', | 42 'Prints out verbose information about what is going on.', |
45 short_name='v') | 43 short_name='v') |
46 | 44 |
47 | 45 |
48 # Takes two strings, package_name and commit_id. | 46 # Takes two strings, package_name and commit_id. |
49 _GIT_COMMIT_MESSAGE = 'Marking 9999 ebuild for %s with commit %s as stable.' | 47 _GIT_COMMIT_MESSAGE = 'Marking 9999 ebuild for %s with commit %s as stable.' |
50 | 48 |
51 # Dictionary of valid commands with usage information. | 49 # Dictionary of valid commands with usage information. |
52 COMMAND_DICTIONARY = { | 50 COMMAND_DICTIONARY = { |
53 'clean': | 51 'clean': |
54 'Cleans up previous calls to either commit or push', | 52 'Cleans up previous calls to either commit or push', |
55 'commit': | 53 'commit': |
56 'Marks given ebuilds as stable locally', | 54 'Marks given ebuilds as stable locally', |
57 'push': | 55 'push': |
58 'Pushes previous marking of ebuilds to remote repo', | 56 'Pushes previous marking of ebuilds to remote repo', |
59 } | 57 } |
60 | 58 |
61 # Name used for stabilizing branch. | 59 # Name used for stabilizing branch. |
62 _STABLE_BRANCH_NAME = 'stabilizing_branch' | 60 STABLE_BRANCH_NAME = 'stabilizing_branch' |
63 | 61 |
64 | 62 |
65 def BestEBuild(ebuilds): | 63 def BestEBuild(ebuilds): |
66 """Returns the newest EBuild from a list of EBuild objects.""" | 64 """Returns the newest EBuild from a list of EBuild objects.""" |
67 from portage.versions import vercmp | 65 from portage.versions import vercmp |
68 winner = ebuilds[0] | 66 winner = ebuilds[0] |
69 for ebuild in ebuilds[1:]: | 67 for ebuild in ebuilds[1:]: |
70 if vercmp(winner.version, ebuild.version) < 0: | 68 if vercmp(winner.version, ebuild.version) < 0: |
71 winner = ebuild | 69 winner = ebuild |
72 return winner | 70 return winner |
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
537 continue | 535 continue |
538 | 536 |
539 # TODO(davidjames): Currently, all code that interacts with git depends on | 537 # TODO(davidjames): Currently, all code that interacts with git depends on |
540 # the cwd being set to the overlay directory. We should instead pass in | 538 # the cwd being set to the overlay directory. We should instead pass in |
541 # this parameter so that we don't need to modify the cwd globally. | 539 # this parameter so that we don't need to modify the cwd globally. |
542 os.chdir(overlay) | 540 os.chdir(overlay) |
543 | 541 |
544 if command == 'clean': | 542 if command == 'clean': |
545 Clean(gflags.FLAGS.tracking_branch) | 543 Clean(gflags.FLAGS.tracking_branch) |
546 elif command == 'push': | 544 elif command == 'push': |
547 PushChange(_STABLE_BRANCH_NAME, gflags.FLAGS.tracking_branch) | 545 PushChange(STABLE_BRANCH_NAME, gflags.FLAGS.tracking_branch) |
548 elif command == 'commit' and ebuilds: | 546 elif command == 'commit' and ebuilds: |
549 work_branch = GitBranch(_STABLE_BRANCH_NAME, gflags.FLAGS.tracking_branch) | 547 work_branch = GitBranch(STABLE_BRANCH_NAME, gflags.FLAGS.tracking_branch) |
550 work_branch.CreateBranch() | 548 work_branch.CreateBranch() |
551 if not work_branch.Exists(): | 549 if not work_branch.Exists(): |
552 Die('Unable to create stabilizing branch in %s' % overlay) | 550 Die('Unable to create stabilizing branch in %s' % overlay) |
553 | 551 |
554 # Contains the array of packages we actually revved. | 552 # Contains the array of packages we actually revved. |
555 revved_packages = [] | 553 revved_packages = [] |
556 for ebuild in ebuilds: | 554 for ebuild in ebuilds: |
557 try: | 555 try: |
558 _Print('Working on %s' % ebuild.package) | 556 _Print('Working on %s' % ebuild.package) |
559 worker = EBuildStableMarker(ebuild) | 557 worker = EBuildStableMarker(ebuild) |
(...skipping 14 matching lines...) Expand all Loading... |
574 if gflags.FLAGS.drop_file: | 572 if gflags.FLAGS.drop_file: |
575 fh = open(gflags.FLAGS.drop_file, 'w') | 573 fh = open(gflags.FLAGS.drop_file, 'w') |
576 fh.write(' '.join(revved_packages)) | 574 fh.write(' '.join(revved_packages)) |
577 fh.close() | 575 fh.close() |
578 else: | 576 else: |
579 work_branch.Delete() | 577 work_branch.Delete() |
580 | 578 |
581 | 579 |
582 if __name__ == '__main__': | 580 if __name__ == '__main__': |
583 main(sys.argv) | 581 main(sys.argv) |
OLD | NEW |