summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-10-21 06:07:49 +0000
committerZac Medico <zmedico@gentoo.org>2007-10-21 06:07:49 +0000
commitc3865d5ac3f20b083a4d10d8818da26595768e13 (patch)
tree96bde2ef2e5fa9b88bdfc48d742e7bf51e50358f /bin/portageq
parentMake depgraph.xcreate() use the filtered repo to determine (diff)
downloadportage-multirepo-c3865d5ac3f20b083a4d10d8818da26595768e13.tar.gz
portage-multirepo-c3865d5ac3f20b083a4d10d8818da26595768e13.tar.bz2
portage-multirepo-c3865d5ac3f20b083a4d10d8818da26595768e13.zip
Bug #196537 - Make portageq check that the <root> parameter
is an existing directory and exit gracefully if not. svn path=/main/trunk/; revision=8195
Diffstat (limited to 'bin/portageq')
-rwxr-xr-xbin/portageq20
1 files changed, 13 insertions, 7 deletions
diff --git a/bin/portageq b/bin/portageq
index f3177cb5..2fd1a185 100755
--- a/bin/portageq
+++ b/bin/portageq
@@ -422,11 +422,20 @@ def main():
sys.exit(os.EX_USAGE)
cmd = sys.argv[1]
+ function = globals().get(cmd)
+ if function is None:
+ usage(sys.argv)
+ sys.exit(os.EX_USAGE)
+ function = globals()[cmd]
+ uses_root = getattr(function, "uses_root", False) and len(sys.argv) > 2
+ if uses_root:
+ if not os.path.isdir(sys.argv[2]):
+ sys.stderr.write("Not a directory: '%s'\n" % sys.argv[2])
+ sys.stderr.write("Run portageq with --help for info\n")
+ sys.stderr.flush()
+ sys.exit(os.EX_USAGE)
+ os.environ["ROOT"] = sys.argv[2]
try:
- function = globals()[cmd]
- uses_root = (getattr(function, "uses_root", False) and len(sys.argv) > 2)
- if uses_root:
- os.environ["ROOT"] = sys.argv[2]
global portage
try:
import portage
@@ -439,9 +448,6 @@ def main():
retval = function(sys.argv[2:])
if retval:
sys.exit(retval)
- except KeyError:
- usage(sys.argv)
- sys.exit(os.EX_USAGE)
except portage.exception.PermissionDenied, e:
sys.stderr.write("Permission denied: '%s'\n" % str(e))
sys.exit(e.errno)