diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-07-30 04:31:03 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-07-30 04:31:03 +0000 |
commit | 6ddb43d4cefac01b12ce9d2655b36180a8932acb (patch) | |
tree | 86336838fdd778923bb9e2bdf44482fad6894b8b /bin | |
parent | 0a7b011b785a0f8f67f770eabf6eae9d4f22707d (diff) | |
download | portage-6ddb43d4cefac01b12ce9d2655b36180a8932acb.tar.gz portage-6ddb43d4cefac01b12ce9d2655b36180a8932acb.tar.bz2 portage-6ddb43d4cefac01b12ce9d2655b36180a8932acb.zip |
For bug #180165, make portageq print a "Permission denied" error when appropriate and make has_version die if portageq has an unexpected exit code. (branches/2.1.2 r6885)
svn path=/main/branches/2.1.2.9/; revision=7470
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/ebuild.sh | 18 | ||||
-rwxr-xr-x | bin/emerge | 7 | ||||
-rwxr-xr-x | bin/portageq | 7 |
3 files changed, 20 insertions, 12 deletions
diff --git a/bin/ebuild.sh b/bin/ebuild.sh index 5b9abd7a6..18c946840 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -190,11 +190,19 @@ has_version() { fi # return shell-true/shell-false if exists. # Takes single depend-type atoms. - if "${PORTAGE_BIN_PATH}/portageq" 'has_version' "${ROOT}" "$1"; then - return 0 - else - return 1 - fi + "${PORTAGE_BIN_PATH}"/portageq has_version "${ROOT}" "$1" + local retval=$? + case "${retval}" in + 0) + return 0 + ;; + 1) + return 1 + ;; + *) + die "unexpected portageq exit code: ${retval}" + ;; + esac } portageq() { diff --git a/bin/emerge b/bin/emerge index 8e43bb822..80b72e142 100755 --- a/bin/emerge +++ b/bin/emerge @@ -5582,5 +5582,10 @@ def emerge_main(): post_emerge(settings, mtimedb, 0) if __name__ == "__main__": - retval = emerge_main() + from portage_exception import PermissionDenied + try: + retval = emerge_main() + except PermissionDenied, e: + sys.stderr.write("Permission denied: '%s'\n" % str(e)) + sys.exit(e.errno) sys.exit(retval) diff --git a/bin/portageq b/bin/portageq index 6147e5627..1a59af8bc 100755 --- a/bin/portageq +++ b/bin/portageq @@ -133,12 +133,7 @@ def best_visible(argv): sys.exit(2) try: mylist=portage.db[argv[0]]["porttree"].dbapi.match(argv[1]) - visible=portage.best(mylist) - if visible: - print visible - sys.exit(0) - else: - sys.exit(1) + print portage.best(mylist) except KeyError: sys.exit(1) best_visible.uses_root = True |