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 12 matching lines...) Expand all Loading... |
23 gflags.DEFINE_string('board', '', | 23 gflags.DEFINE_string('board', '', |
24 'Board for which the package belongs.', short_name='b') | 24 'Board for which the package belongs.', short_name='b') |
25 gflags.DEFINE_boolean('dryrun', False, | 25 gflags.DEFINE_boolean('dryrun', False, |
26 'Passes dry-run to git push if pushing a change.') | 26 'Passes dry-run to git push if pushing a change.') |
27 gflags.DEFINE_string('overlays', '', | 27 gflags.DEFINE_string('overlays', '', |
28 'Colon-separated list of overlays to modify.', | 28 'Colon-separated list of overlays to modify.', |
29 short_name='o') | 29 short_name='o') |
30 gflags.DEFINE_string('packages', '', | 30 gflags.DEFINE_string('packages', '', |
31 'Colon-separated list of packages to mark as stable.', | 31 'Colon-separated list of packages to mark as stable.', |
32 short_name='p') | 32 short_name='p') |
33 gflags.DEFINE_string('push_options', '', | |
34 'Options to use with git-cl push using push command.') | |
35 gflags.DEFINE_string('srcroot', '%s/trunk/src' % os.environ['HOME'], | 33 gflags.DEFINE_string('srcroot', '%s/trunk/src' % os.environ['HOME'], |
36 'Path to root src directory.', | 34 'Path to root src directory.', |
37 short_name='r') | 35 short_name='r') |
38 gflags.DEFINE_string('tracking_branch', 'cros/master', | 36 gflags.DEFINE_string('tracking_branch', 'cros/master', |
39 'Used with commit to specify branch to track against.', | 37 'Used with commit to specify branch to track against.', |
40 short_name='t') | 38 short_name='t') |
41 gflags.DEFINE_boolean('verbose', False, | 39 gflags.DEFINE_boolean('verbose', False, |
42 'Prints out verbose information about what is going on.', | 40 'Prints out verbose information about what is going on.', |
43 short_name='v') | 41 short_name='v') |
44 | 42 |
45 | 43 |
46 # Takes two strings, package_name and commit_id. | 44 # Takes two strings, package_name and commit_id. |
47 _GIT_COMMIT_MESSAGE = 'Marking 9999 ebuild for %s with commit %s as stable.' | 45 _GIT_COMMIT_MESSAGE = 'Marking 9999 ebuild for %s with commit %s as stable.' |
48 | 46 |
49 # Dictionary of valid commands with usage information. | 47 # Dictionary of valid commands with usage information. |
50 COMMAND_DICTIONARY = { | 48 COMMAND_DICTIONARY = { |
51 'clean': | 49 'clean': |
52 'Cleans up previous calls to either commit or push', | 50 'Cleans up previous calls to either commit or push', |
53 'commit': | 51 'commit': |
54 'Marks given ebuilds as stable locally', | 52 'Marks given ebuilds as stable locally', |
55 'push': | 53 'push': |
56 'Pushes previous marking of ebuilds to remote repo', | 54 'Pushes previous marking of ebuilds to remote repo', |
57 } | 55 } |
58 | 56 |
59 # Name used for stabilizing branch. | 57 # Name used for stabilizing branch. |
60 _STABLE_BRANCH_NAME = 'stabilizing_branch' | 58 STABLE_BRANCH_NAME = 'stabilizing_branch' |
61 | 59 |
62 | 60 |
63 def BestEBuild(ebuilds): | 61 def BestEBuild(ebuilds): |
64 """Returns the newest EBuild from a list of EBuild objects.""" | 62 """Returns the newest EBuild from a list of EBuild objects.""" |
65 from portage.versions import vercmp | 63 from portage.versions import vercmp |
66 winner = ebuilds[0] | 64 winner = ebuilds[0] |
67 for ebuild in ebuilds[1:]: | 65 for ebuild in ebuilds[1:]: |
68 if vercmp(winner.version, ebuild.version) < 0: | 66 if vercmp(winner.version, ebuild.version) < 0: |
69 winner = ebuild | 67 winner = ebuild |
70 return winner | 68 return winner |
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
535 continue | 533 continue |
536 | 534 |
537 # TODO(davidjames): Currently, all code that interacts with git depends on | 535 # TODO(davidjames): Currently, all code that interacts with git depends on |
538 # the cwd being set to the overlay directory. We should instead pass in | 536 # the cwd being set to the overlay directory. We should instead pass in |
539 # this parameter so that we don't need to modify the cwd globally. | 537 # this parameter so that we don't need to modify the cwd globally. |
540 os.chdir(overlay) | 538 os.chdir(overlay) |
541 | 539 |
542 if command == 'clean': | 540 if command == 'clean': |
543 Clean(gflags.FLAGS.tracking_branch) | 541 Clean(gflags.FLAGS.tracking_branch) |
544 elif command == 'push': | 542 elif command == 'push': |
545 PushChange(_STABLE_BRANCH_NAME, gflags.FLAGS.tracking_branch) | 543 PushChange(STABLE_BRANCH_NAME, gflags.FLAGS.tracking_branch) |
546 elif command == 'commit' and ebuilds: | 544 elif command == 'commit' and ebuilds: |
547 work_branch = GitBranch(_STABLE_BRANCH_NAME, gflags.FLAGS.tracking_branch) | 545 work_branch = GitBranch(STABLE_BRANCH_NAME, gflags.FLAGS.tracking_branch) |
548 work_branch.CreateBranch() | 546 work_branch.CreateBranch() |
549 if not work_branch.Exists(): | 547 if not work_branch.Exists(): |
550 Die('Unable to create stabilizing branch in %s' % overlay) | 548 Die('Unable to create stabilizing branch in %s' % overlay) |
551 | 549 |
552 # Contains the array of packages we actually revved. | 550 # Contains the array of packages we actually revved. |
553 revved_packages = [] | 551 revved_packages = [] |
554 for ebuild in ebuilds: | 552 for ebuild in ebuilds: |
555 try: | 553 try: |
556 _Print('Working on %s' % ebuild.package) | 554 _Print('Working on %s' % ebuild.package) |
557 worker = EBuildStableMarker(ebuild) | 555 worker = EBuildStableMarker(ebuild) |
(...skipping 10 matching lines...) Expand all Loading... |
568 raise | 566 raise |
569 | 567 |
570 if revved_packages: | 568 if revved_packages: |
571 _CleanStalePackages(gflags.FLAGS.board, revved_packages) | 569 _CleanStalePackages(gflags.FLAGS.board, revved_packages) |
572 else: | 570 else: |
573 work_branch.Delete() | 571 work_branch.Delete() |
574 | 572 |
575 | 573 |
576 if __name__ == '__main__': | 574 if __name__ == '__main__': |
577 main(sys.argv) | 575 main(sys.argv) |
OLD | NEW |