From 708df39935adfcfc35c6996133f8e5ea1912f4df Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Fri, 18 Feb 2011 09:39:15 +0000 Subject: [PATCH] Check the os.environ at the start of the build process. Print any variable that contains a value with non-ascii characters, then abort build. --- SConstruct | 4 ++++ build_files/scons/tools/btools.py | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/SConstruct b/SConstruct index fe60d41c48d..49c5ae98249 100644 --- a/SConstruct +++ b/SConstruct @@ -60,6 +60,10 @@ import bcolors EnsureSConsVersion(1,0,0) +# Before we do anything, let's check if we have a sane os.environ +if not btools.check_environ(): + Exit() + BlenderEnvironment = Blender.BlenderEnvironment B = Blender diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py index 1d716f9a093..6eb987db37b 100644 --- a/build_files/scons/tools/btools.py +++ b/build_files/scons/tools/btools.py @@ -568,3 +568,24 @@ def NSIS_Installer(target=None, source=None, env=None): print data.strip().split("\n")[-1] return rv +def check_environ(): + problematic_envvars = "" + for i in os.environ: + try: + os.environ[i].decode('ascii') + except UnicodeDecodeError: + problematic_envvars = problematic_envvars + "%s = %s\n" % (i, os.environ[i]) + if len(problematic_envvars)>0: + print("================\n\n") + print("@@ ABORTING BUILD @@\n") + print("PROBLEM DETECTED WITH ENVIRONMENT") + print("---------------------------------\n\n") + print("A problem with one or more environment variable was found") + print("Their value contain non-ascii characters. Check the below") + print("list and override them locally to be ASCII-clean by doing") + print("'set VARNAME=cleanvalue' on the command-line prior to") + print("starting the build process:\n") + print(problematic_envvars) + return False + else: + return True