Commit df0032c0 authored by skylined@chromium.org's avatar skylined@chromium.org

Add code to handle errors in .gclient configuration files and output human...

Add code to handle errors in .gclient configuration files and output human readble information rather than a raw exception stack.

Review URL: http://codereview.chromium.org/113968

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@17179 0039d316-1c4b-4281-b951-d872f2087c98
parent 78688625
......@@ -940,7 +940,21 @@ class GClient(object):
def SetConfig(self, content):
self._config_dict = {}
self._config_content = content
exec(content, self._config_dict)
try:
exec(content, self._config_dict)
except SyntaxError, e:
try:
# Try to construct a human readable error message
error_message = [
'There is a syntax error in your configuration file.',
'Line #%s, character %s:' % (e.lineno, e.offset),
'"%s"' % re.sub(r'[\r\n]*$', '', e.text) ]
except:
# Something went wrong, re-raise the original exception
raise e
else:
# Raise a new exception with the human readable message:
raise Error('\n'.join(error_message))
def SaveConfig(self):
FileWrite(os.path.join(self._root_dir, self._options.config_filename),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment