summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/main.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-07-09 07:35:22 +0000
committerZac Medico <zmedico@gentoo.org>2009-07-09 07:35:22 +0000
commitfb0caf19c365cf89523e2725599781b05698a59f (patch)
tree0030e494d623436d3af82d091b9159e4c0c8991e /pym/_emerge/main.py
parentc7188fc98450630f7b8a81f80b1ebc0d6cc7da78 (diff)
downloadportage-fb0caf19c365cf89523e2725599781b05698a59f.tar.gz
portage-fb0caf19c365cf89523e2725599781b05698a59f.tar.bz2
portage-fb0caf19c365cf89523e2725599781b05698a59f.zip
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
Diffstat (limited to 'pym/_emerge/main.py')
-rw-r--r--pym/_emerge/main.py36
1 files changed, 34 insertions, 2 deletions
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index abbaf2301..dae28fa66 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -49,7 +49,7 @@ options=[
"--buildpkg", "--buildpkgonly",
"--changelog", "--columns",
"--complete-graph",
-"--debug", "--deep",
+"--debug",
"--digest",
"--emptytree",
"--fetchonly", "--fetch-all-uri",
@@ -75,7 +75,7 @@ shortmapping={
"a":"--ask",
"b":"--buildpkg", "B":"--buildpkgonly",
"c":"--clean", "C":"--unmerge",
-"d":"--debug", "D":"--deep",
+"d":"--debug",
"e":"--emptytree",
"f":"--fetchonly", "F":"--fetch-all-uri",
"g":"--getbinpkg", "G":"--getbinpkgonly",
@@ -383,6 +383,7 @@ def insert_optional_args(args):
new_args = []
default_arg_opts = {
+ '--deep' : valid_integers,
'--deselect' : ('n',),
'--binpkg-respect-use' : ('n', 'y',),
'--jobs' : valid_integers,
@@ -390,6 +391,7 @@ def insert_optional_args(args):
}
short_arg_opts = {
+ 'D' : valid_integers,
'j' : valid_integers,
}
@@ -488,6 +490,18 @@ def parse_opts(tmpcmdline, silent=False):
"choices":("y", "n")
},
+ "--deep": {
+
+ "shortopt" : "-D",
+
+ "help" : "Specifies how deep to recurse into dependencies " + \
+ "of packages given as arguments. If no argument is given, " + \
+ "depth is unlimited. Default behavior is to skip " + \
+ "dependencies of installed packages.",
+
+ "action" : "store"
+ },
+
"--deselect": {
"help" : "remove atoms from the world file",
"type" : "choice",
@@ -584,6 +598,24 @@ def parse_opts(tmpcmdline, silent=False):
if myoptions.root_deps == "True":
myoptions.root_deps = True
+ if myoptions.deep is not None:
+ deep = None
+ if myoptions.deep == "True":
+ deep = True
+ else:
+ try:
+ deep = int(myoptions.deep)
+ except (OverflowError, ValueError):
+ deep = -1
+
+ if deep is not True and deep < 0:
+ deep = None
+ if not silent:
+ writemsg("!!! Invalid --deep parameter: '%s'\n" % \
+ (myoptions.deep,), noiselevel=-1)
+
+ myoptions.deep = deep
+
if myoptions.jobs:
jobs = None
if myoptions.jobs == "True":