Clean up bad PORTAGE_BINHOST handling
Suggested-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Reviewed-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
index 95c5c14..19659fd 100644
--- a/pym/_emerge/actions.py
+++ b/pym/_emerge/actions.py
@@ -44,7 +44,7 @@
from portage.dbapi._expand_new_virt import expand_new_virt
from portage.dep import Atom
from portage.eclass_cache import hashed_path
-from portage.exception import InvalidAtom, InvalidData
+from portage.exception import InvalidAtom, InvalidData, ParseError
from portage.output import blue, bold, colorize, create_color_func, darkgreen, \
red, xtermTitle, xtermTitleReset, yellow
good = create_color_func("GOOD")
@@ -3701,8 +3701,13 @@
# Populate the bintree with current --getbinpkg setting.
# This needs to happen before expand_set_arguments(), in case
# any sets use the bintree.
- mytrees["bintree"].populate(
- getbinpkgs="--getbinpkg" in emerge_config.opts)
+ try:
+ mytrees["bintree"].populate(
+ getbinpkgs="--getbinpkg" in emerge_config.opts)
+ except ParseError as e:
+ writemsg("\n\n!!!%s.\nSee make.conf(5) for more info.\n"
+ % e, noiselevel=-1)
+ return 1
del mytrees, mydb
diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py
index 7b61c1f..229ce3b 100644
--- a/pym/portage/dbapi/bintree.py
+++ b/pym/portage/dbapi/bintree.py
@@ -27,7 +27,7 @@
from portage.dbapi.virtual import fakedbapi
from portage.dep import Atom, use_reduce, paren_enclose
from portage.exception import AlarmSignal, InvalidData, InvalidPackageName, \
- PermissionDenied, PortageException
+ ParseError, PermissionDenied, PortageException
from portage.localization import _
from portage import _movefile
from portage import os
@@ -909,11 +909,9 @@
traceback.print_exc()
raise
- except ValueError as _:
- writemsg("\n\n!!! Invalid PORTAGE_BINHOST value "
- "'%s'.\nSee man make.conf(5) for more info."
- "\n" % url.lstrip(), noiselevel=-1)
- exit(1)
+ except ValueError:
+ raise ParseError("Invalid Portage BINHOST value '%s'"
+ % url.lstrip())
if f is None: