From fb0caf19c365cf89523e2725599781b05698a59f Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 9 Jul 2009 07:35:22 +0000 Subject: Allow --deep to take an optional integer parameter, to specify how deep it should go. Also make --update so it no longer implies the equivalent of --deep=1. To get the old --update behavior, use --update --deep=1. svn path=/main/trunk/; revision=13812 --- pym/_emerge/depgraph.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'pym/_emerge/depgraph.py') diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index cb31b76c8..910f1fafe 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -611,8 +611,8 @@ class depgraph(object): buildpkgonly = "--buildpkgonly" in self._frozen_config.myopts nodeps = "--nodeps" in self._frozen_config.myopts empty = "empty" in self._dynamic_config.myparams - deep = "deep" in self._dynamic_config.myparams - update = "--update" in self._frozen_config.myopts and dep.depth <= 1 + deep = self._dynamic_config.myparams.get("deep", 0) + recurse = empty or deep is True or dep.depth <= deep if dep.blocker: if not buildpkgonly and \ not nodeps and \ @@ -648,7 +648,7 @@ class depgraph(object): # available for optimization of merge order. if dep.priority.satisfied and \ not dep_pkg.installed and \ - not (existing_node or empty or deep or update): + not (existing_node or recurse): myarg = None if dep.root == self._frozen_config.target_root: try: @@ -857,18 +857,20 @@ class depgraph(object): emerge --deep ; we need to recursively check dependencies of pkgspec If we are in --nodeps (no recursion) mode, we obviously only check 1 level of dependencies. """ + if arg_atoms: + depth = 0 + pkg.depth = depth + deep = self._dynamic_config.myparams.get("deep", 0) + empty = "empty" in self._dynamic_config.myparams + recurse = empty or deep is True or depth + 1 <= deep dep_stack = self._dynamic_config._dep_stack if "recurse" not in self._dynamic_config.myparams: return 1 - elif pkg.installed and \ - "deep" not in self._dynamic_config.myparams: + elif pkg.installed and not recurse: dep_stack = self._dynamic_config._ignored_deps self._frozen_config.spinner.update() - if arg_atoms: - depth = 0 - pkg.depth = depth if not previously_added: dep_stack.append(pkg) return 1 @@ -2296,7 +2298,7 @@ class depgraph(object): # accounted for. self._select_atoms = self._select_atoms_from_graph self._select_package = self._select_pkg_from_graph - already_deep = "deep" in self._dynamic_config.myparams + already_deep = self._dynamic_config.myparams.get("deep") is True if not already_deep: self._dynamic_config.myparams["deep"] = True -- cgit v1.2.3-1-g7c22