From 4aa4b211c62a8f01abfe1953b4274af69d374ecf Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 4 Mar 2016 15:03:00 -0500 Subject: [PATCH] RepoHook: set __file__ when running the hook A common design pattern is to use __file__ to find the location of the active python module to assist in output or loading of related assets. The current hook systems runs the pre-upload.py hook in a context w/out that set leading to runtime errors: $ repo upload --cbr . ERROR: Traceback (most recent call last): File ".../repo/project.py", line 481, in _ExecuteHook self._script_fullpath, 'exec'), context) File ".../repohooks/pre-upload.py", line 32, in path = os.path.dirname(os.path.realpath(__file__)) NameError: name '__file__' is not defined Define this variable in this context so code can safely use it. Change-Id: If6331312445fa61d9351b59f83abcc1c99ae6748 --- project.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.py b/project.py index d54e336c..4c5fa9e5 100644 --- a/project.py +++ b/project.py @@ -475,7 +475,7 @@ class RepoHook(object): # Exec, storing global context in the context dict. We catch exceptions # and convert to a HookError w/ just the failing traceback. - context = {} + context = {'__file__': self._script_fullpath} try: exec(compile(open(self._script_fullpath).read(), self._script_fullpath, 'exec'), context)