summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-12-11 23:26:05 +0000
committerZac Medico <zmedico@gentoo.org>2007-12-11 23:26:05 +0000
commit5b3135413d200e58e602a74a6816e48380e53433 (patch)
tree05bd527b571cfbfba23f627f64fea576bc8af738 /pym
parentd19cc80ef4bf8b6d6ec7b89b75f2a7a77dfab94c (diff)
downloadportage-5b3135413d200e58e602a74a6816e48380e53433.tar.gz
portage-5b3135413d200e58e602a74a6816e48380e53433.tar.bz2
portage-5b3135413d200e58e602a74a6816e48380e53433.zip
Instead of calling sys.exit when a ParseError occurs in the config
constructor, raise a ParseError and make emerge and portageq handle the error. This way consumers of the portage api can handle the ParseError rather than have their application exit. Thanks to lxnay for reporting. svn path=/main/trunk/; revision=8884
Diffstat (limited to 'pym')
-rw-r--r--pym/_emerge/__init__.py4
-rw-r--r--pym/portage/__init__.py78
2 files changed, 20 insertions, 62 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index f5aa77631..0bebfef60 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -7188,7 +7188,3 @@ def emerge_main():
if "--pretend" in myopts:
display_news_notification(trees)
return retval
-
-if __name__ == "__main__":
- retval = emerge_main()
- sys.exit(retval)
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index bbb0c57a0..e32e16839 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -1213,74 +1213,36 @@ class config(object):
# make.globals should not be relative to config_root
# because it only contains constants.
- try:
- self.mygcfg = getconfig(os.path.join("/etc", "make.globals"))
+ self.mygcfg = getconfig(os.path.join("/etc", "make.globals"))
+
+ if self.mygcfg is None:
+ self.mygcfg = {}
- if self.mygcfg is None:
- self.mygcfg = {}
- except SystemExit, e:
- raise
- except Exception, e:
- if debug:
- raise
- writemsg("!!! %s\n" % (e), noiselevel=-1)
- if not isinstance(e, EnvironmentError):
- writemsg("!!! Incorrect multiline literals can cause " + \
- "this. Do not use them.\n", noiselevel=-1)
- sys.exit(1)
self.configlist.append(self.mygcfg)
self.configdict["globals"]=self.configlist[-1]
self.make_defaults_use = []
self.mygcfg = {}
if self.profiles:
- try:
- mygcfg_dlists = [getconfig(os.path.join(x, "make.defaults")) for x in self.profiles]
- for cfg in mygcfg_dlists:
- if cfg:
- self.make_defaults_use.append(cfg.get("USE", ""))
- else:
- self.make_defaults_use.append("")
- self.mygcfg = stack_dicts(mygcfg_dlists, incrementals=portage.const.INCREMENTALS, ignore_none=1)
- #self.mygcfg = grab_stacked("make.defaults", self.profiles, getconfig)
- if self.mygcfg is None:
- self.mygcfg = {}
- except SystemExit, e:
- raise
- except Exception, e:
- if debug:
- raise
- writemsg("!!! %s\n" % (e), noiselevel=-1)
- if not isinstance(e, EnvironmentError):
- writemsg("!!! 'rm -Rf /usr/portage/profiles; " + \
- "emerge sync' may fix this. If it does\n",
- noiselevel=-1)
- writemsg("!!! not then please report this to " + \
- "bugs.gentoo.org and, if possible, a dev\n",
- noiselevel=-1)
- writemsg("!!! on #gentoo (irc.freenode.org)\n",
- noiselevel=-1)
- sys.exit(1)
- self.configlist.append(self.mygcfg)
- self.configdict["defaults"]=self.configlist[-1]
-
- try:
- self.mygcfg = getconfig(
- os.path.join(config_root, MAKE_CONF_FILE.lstrip(os.path.sep)),
- allow_sourcing=True)
+ mygcfg_dlists = [getconfig(os.path.join(x, "make.defaults")) \
+ for x in self.profiles]
+ for cfg in mygcfg_dlists:
+ if cfg:
+ self.make_defaults_use.append(cfg.get("USE", ""))
+ else:
+ self.make_defaults_use.append("")
+ self.mygcfg = stack_dicts(mygcfg_dlists,
+ incrementals=portage.const.INCREMENTALS, ignore_none=1)
if self.mygcfg is None:
self.mygcfg = {}
- except SystemExit, e:
- raise
- except Exception, e:
- if debug:
- raise
- writemsg("!!! %s\n" % (e), noiselevel=-1)
- if not isinstance(e, EnvironmentError):
- writemsg("!!! Incorrect multiline literals can cause " + \
- "this. Do not use them.\n", noiselevel=-1)
- sys.exit(1)
+ self.configlist.append(self.mygcfg)
+ self.configdict["defaults"]=self.configlist[-1]
+ self.mygcfg = getconfig(
+ os.path.join(config_root, MAKE_CONF_FILE.lstrip(os.path.sep)),
+ allow_sourcing=True)
+ if self.mygcfg is None:
+ self.mygcfg = {}
# Don't allow the user to override certain variables in make.conf
profile_only_variables = self.configdict["defaults"].get(