Index: gclient.py |
diff --git a/gclient.py b/gclient.py |
index a3ff76c81fa4f108f6ffdd571c4a822fe28362c2..e3596b9fd612817365b837b8c9115edc440a6f1a 100644 |
--- a/gclient.py |
+++ b/gclient.py |
@@ -204,7 +204,10 @@ class Dependency(GClientKeywords): |
'Var': var.Lookup, |
'deps_os': {}, |
} |
- exec(deps_content, global_scope, local_scope) |
+ try: |
+ exec(deps_content, global_scope, local_scope) |
+ except SyntaxError, e: |
+ gclient_utils.SyntaxErrorToError(filepath, e) |
deps = local_scope.get('deps', {}) |
# load os specific dependencies if defined. these dependencies may |
# override or extend the values defined by the 'deps' member. |
@@ -464,18 +467,7 @@ solutions = [ |
try: |
exec(content, 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 gclient_utils.Error('\n'.join(error_message)) |
+ gclient_utils.SyntaxErrorToError('.gclient', e) |
for s in config_dict.get('solutions', []): |
try: |
self.dependencies.append(Dependency( |
@@ -538,7 +530,10 @@ solutions = [ |
filename = os.path.join(self.root_dir(), self._options.entries_filename) |
if not os.path.exists(filename): |
return {} |
- exec(gclient_utils.FileRead(filename), scope) |
+ try: |
+ exec(gclient_utils.FileRead(filename), scope) |
+ except SyntaxError, e: |
+ gclient_utils.SyntaxErrorToError(filename, e) |
return scope['entries'] |
def _EnforceRevisions(self): |