Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Side by Side Diff: parallel_emerge

Issue 2927013: Fix parallel_emerge --unmerge to actually work. (Closed) Base URL: ssh://git@chromiumos-git/crosutils.git
Patch Set: Re-upload Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python2.6 1 #!/usr/bin/python2.6
2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Program to run emerge in parallel, for significant speedup. 6 """Program to run emerge in parallel, for significant speedup.
7 7
8 Usage: 8 Usage:
9 ./parallel_emerge [--board=BOARD] [--workon=PKGS] [--no-workon-deps] 9 ./parallel_emerge [--board=BOARD] [--workon=PKGS] [--no-workon-deps]
10 [emerge args] package" 10 [emerge args] package"
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 elif action == "uninstall": 597 elif action == "uninstall":
598 cmdline = EmergeCommand() + " --nodeps --unmerge =" + target 598 cmdline = EmergeCommand() + " --nodeps --unmerge =" + target
599 else: 599 else:
600 # This package is a dependency of something we specifically 600 # This package is a dependency of something we specifically
601 # requested. Therefore we should install it but not allow it 601 # requested. Therefore we should install it but not allow it
602 # in the "world" file, which represents explicit installs. 602 # in the "world" file, which represents explicit installs.
603 # --oneshot" here will prevent it from being tagged in world. 603 # --oneshot" here will prevent it from being tagged in world.
604 cmdline = EmergeCommand() + " --nodeps --oneshot " 604 cmdline = EmergeCommand() + " --nodeps --oneshot "
605 this_pkg = self._deps_map[target] 605 this_pkg = self._deps_map[target]
606 if this_pkg["workon"]: 606 if this_pkg["workon"]:
607 # --usepkg=n --getbinpkg=n: Build from source 607 # --usepkg=n --usepkgonly=n --getbinpkg=n
608 # --getbinpkgonly=n: Build from source
608 # --selective=n: Re-emerge even if package is already installed. 609 # --selective=n: Re-emerge even if package is already installed.
609 cmdline += "--usepkg=n --getbinpkg=n --selective=n " 610 cmdline += ("--usepkg=n --usepkgonly=n --getbinpkg=n "
611 "--getbinpkgonly=n --selective=n ")
610 cmdline += "=" + target 612 cmdline += "=" + target
611 deps_info = this_pkg["deps_info"] 613 deps_info = this_pkg["deps_info"]
612 if deps_info["uninstall"]: 614 if deps_info["uninstall"]:
613 package = "%(pkgdir)s/%(pkgname)s-%(oldversion)s" % deps_info 615 package = "%(pkgdir)s/%(pkgname)s-%(oldversion)s" % deps_info
614 cmdline += " && %s -C =%s" % (EmergeCommand(), package) 616 cmdline += " && %s -C =%s" % (EmergeCommand(), package)
615 617
616 print "+ %s" % cmdline 618 print "+ %s" % cmdline
617 619
618 # Store output in a temp file as it is too big for a unix pipe. 620 # Store output in a temp file as it is too big for a unix pipe.
619 stdout_buffer = tempfile.TemporaryFile() 621 stdout_buffer = tempfile.TemporaryFile()
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
746 # Print an update. 748 # Print an update.
747 self._Status() 749 self._Status()
748 750
749 751
750 # Main control code. 752 # Main control code.
751 OPTS, EMERGE_ACTION, EMERGE_OPTS, EMERGE_FILES = ParseArgs(sys.argv) 753 OPTS, EMERGE_ACTION, EMERGE_OPTS, EMERGE_FILES = ParseArgs(sys.argv)
752 754
753 if EMERGE_ACTION is not None: 755 if EMERGE_ACTION is not None:
754 # Pass action arguments straight through to emerge 756 # Pass action arguments straight through to emerge
755 EMERGE_OPTS["--%s" % EMERGE_ACTION] = True 757 EMERGE_OPTS["--%s" % EMERGE_ACTION] = True
756 sys.exit(os.system(EmergeCommand())) 758 sys.exit(os.system(EmergeCommand() + " " + " ".join(EMERGE_FILES)))
757 elif not EMERGE_FILES: 759 elif not EMERGE_FILES:
758 Usage() 760 Usage()
759 sys.exit(1) 761 sys.exit(1)
760 762
761 print "Starting fast-emerge." 763 print "Starting fast-emerge."
762 print " Building package %s on %s" % (" ".join(EMERGE_FILES), 764 print " Building package %s on %s" % (" ".join(EMERGE_FILES),
763 OPTS.get("board", "root")) 765 OPTS.get("board", "root"))
764 766
765 # If the user supplied the --workon option, we may have to run emerge twice 767 # If the user supplied the --workon option, we may have to run emerge twice
766 # to generate a dependency ordering for packages that depend on the workon 768 # to generate a dependency ordering for packages that depend on the workon
(...skipping 21 matching lines...) Expand all
788 790
789 if VERBOSE: 791 if VERBOSE:
790 PrintDepsMap(dependency_graph) 792 PrintDepsMap(dependency_graph)
791 793
792 # Run the queued emerges. 794 # Run the queued emerges.
793 scheduler = EmergeQueue(dependency_graph) 795 scheduler = EmergeQueue(dependency_graph)
794 scheduler.Run() 796 scheduler.Run()
795 797
796 print "Done" 798 print "Done"
797 799
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698