You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gump.apache.org by bo...@apache.org on 2010/08/18 23:00:19 UTC

svn commit: r986938 - /gump/trunk/cron/gump.py

Author: bodewig
Date: Wed Aug 18 21:00:18 2010
New Revision: 986938

URL: http://svn.apache.org/viewvc?rev=986938&view=rev
Log:
make the pre/post run script code actually work for scripts living in the cron directory - not that the old code worked for any other directory

Modified:
    gump/trunk/cron/gump.py

Modified: gump/trunk/cron/gump.py
URL: http://svn.apache.org/viewvc/gump/trunk/cron/gump.py?rev=986938&r1=986937&r2=986938&view=diff
==============================================================================
--- gump/trunk/cron/gump.py (original)
+++ gump/trunk/cron/gump.py Wed Aug 18 21:00:18 2010
@@ -247,6 +247,27 @@ def tailFile(file, lines, _eol = None, _
 def tailFileToString(file, lines, eol = None, marker = None):
     return "".join(tailFile(file, lines, eol, marker))
 
+def run_prepost_script(env_var, script_type):
+    """
+    runs a local PRE or POST script if the corresponding envoronment
+    variable has been specified and the script exists.
+    """
+    if os.environ.has_key(env_var):
+        pp_script = os.environ[env_var]
+        if not os.path.exists(pp_script):
+            pp_script = os.path.join(start_dir, pp_script)
+        if os.path.exists(pp_script):
+            pp_name = os.path.basename(pp_script)
+            pp_exit = runCommand(pp_script,
+                                 outputFile = os.path.join(".",
+                                                           pp_name + ".out")
+                                 )
+            if pp_exit:
+                return 1
+        else:
+            log.write('No %s script [%s].\n' % (script_type, pp_script))
+    return 0
+
 def doRun():
     # Starting up...
     writeRunLogEntry('Gump Start-up. Arguments [%s]' % sys.argv)
@@ -411,17 +432,8 @@ def doRun():
             if os.path.exists('.timestamp'): 
                 os.remove('.timestamp')
 
-            if os.environ.has_key('HOST_LOCAL_PRE_RUN'):
-                pre_run_script = os.environ['HOST_LOCAL_PRE_RUN']
-                if os.path.exists(pre_run_script):
-                    pre_exit = runCommand(os.path.join('.', pre_run_script), \
-                                          outputFile = \
-                                              os.path.join(pre_run_script,
-                                                           ".out"))
-                    if pre_exit:
-                        result = 1
-                else:
-                    log.write('No pre-run script [%s].\n' % pre_run_script)
+            if run_prepost_script('HOST_LOCAL_PRE_RUN', 'pre-run'):
+                result = 1
 
             if not result:
                 # Process/build command line
@@ -445,20 +457,8 @@ def doRun():
                     result = 1
 
             if not result:
-                if os.environ.has_key('HOST_LOCAL_POST_RUN'):
-                    post_run_script = os.environ['HOST_LOCAL_POST_RUN']
-                    if os.path.exists(post_run_script):
-                        post_exit = runCommand(os.path.join('.',
-                                                            post_run_script), \
-                                          outputFile = \
-                                                   os.path.join(post_run_script,
-                                                                ".out"))
-                        if post_exit:
-                            result = 1
-                    else:
-                        log.write('No post-run script [%s].\n' % \
-                                      post_run_script)
-
+                if run_prepost_script('HOST_LOCAL_POST_RUN', 'post-run'):
+                    result = 1
 
         except KeyboardInterrupt:
             log.write('Terminated by user interrupt...\n')
@@ -569,6 +569,7 @@ def doRun():
 # Do it! Do it!
 
 # Ensure we start in the correct directory, setting GUMP_HOME
+start_dir = os.path.abspath(os.getcwd())
 gumpHome = os.path.abspath(os.path.join(os.getcwd(), '..'))
 os.environ['GUMP_HOME'] = gumpHome
 os.chdir(gumpHome)