summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/portageq20
1 files changed, 13 insertions, 7 deletions
diff --git a/bin/portageq b/bin/portageq
index f3177cb50..2fd1a1852 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)