# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ import logging from portage.util import writemsg_level def create_depgraph_params(myopts, myaction): #configure emerge engine parameters # # self: include _this_ package regardless of if it is merged. # selective: exclude the package if it is merged # recurse: go into the dependencies # deep: go into the dependencies of already merged packages # empty: pretend nothing is merged # complete: completely account for all known dependencies # remove: build graph for use in removing packages myparams = {"recurse" : True} if myaction == "remove": myparams["remove"] = True myparams["complete"] = True return myparams if "--update" in myopts or \ "--newuse" in myopts or \ "--reinstall" in myopts or \ "--noreplace" in myopts or \ myopts.get("--selective", "n") != "n": myparams["selective"] = True if "--emptytree" in myopts: myparams["empty"] = True myparams.pop("selective", None) if "--nodeps" in myopts: myparams.pop("recurse", None) if "--deep" in myopts: myparams["deep"] = myopts["--deep"] if "--complete-graph" in myopts: myparams["complete"] = True if myopts.get("--selective") == "n": # --selective=n can be used to remove selective # behavior that may have been implied by some # other option like --update. myparams.pop("selective", None) if '--debug' in myopts: writemsg_level('\n\nmyparams %s\n\n' % myparams, noiselevel=-1, level=logging.DEBUG) return myparams