Index: gclient.py |
=================================================================== |
--- gclient.py (revision 17115) |
+++ gclient.py (working copy) |
@@ -940,7 +940,21 @@ |
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), |