Fix crappy error handling for PORTAGE_WORKDIR_MODE
authorMarius Mauch <genone@gentoo.org>
Fri, 24 Mar 2006 21:24:32 +0000 (21:24 -0000)
committerMarius Mauch <genone@gentoo.org>
Fri, 24 Mar 2006 21:24:32 +0000 (21:24 -0000)
svn path=/main/trunk/; revision=2989

pym/portage.py

index b4f05f75dd3dbdf0d8d87040729889f16faf1a4c..2a4000044e9c7f093d17c8d60e89f02a6c3873bd 100644 (file)
@@ -2613,15 +2613,22 @@ def prepare_build_dirs(myroot, mysettings, cleanup):
 
        workdir_mode = 0700
        try:
-               parsed_mode = int(eval(mysettings["PORTAGE_WORKDIR_MODE"]))
+               mode = mysettings["PORTAGE_WORKDIR_MODE"]
+               if mode.isdigit():
+                       parsed_mode = int(mode)
+               elif mode == "":
+                       raise KeyError()
+               else:
+                       raise ValueError()
                if parsed_mode & 07777 != parsed_mode:
-                       raise ValueError("Invalid file mode: %s" % mysettings["PORTAGE_WORKDIR_MODE"])
+                       raise ValueError("Invalid file mode: %s" % mode)
                else:
                        workdir_mode = parsed_mode
        except KeyError, e:
-               writemsg("!!! PORTAGE_WORKDIR_MODE is unset, using %s." % oct(workdir_mode))
-       except (ValueError, SyntaxError), e:
-               writemsg("%s\n" % e)
+               writemsg("!!! PORTAGE_WORKDIR_MODE is unset, using %s.\n" % oct(workdir_mode))
+       except ValueError, e:
+               if len(str(e)) > 0:
+                       writemsg("%s\n" % e)
                writemsg("!!! Unable to parse PORTAGE_WORKDIR_MODE='%s', using %s.\n" % \
                (mysettings["PORTAGE_WORKDIR_MODE"], oct(workdir_mode)))
        mysettings["PORTAGE_WORKDIR_MODE"] = oct(workdir_mode)