--- buildman/bma	2025/03/05 17:23:59	1.5
+++ buildman/bma	2025/03/12 02:31:46	1.6
@@ -92,6 +92,8 @@ do
             JOBDIR="${HOSTDIR}/jobs/${JOBID}"
             JLOG="${JOBDIR}/job.log"
             JSCR="${BUILDMAN_BASE}/projects/${PROJECT}/scripts/build.sh"
+            PRESCR="${HOSTDIR}/prebuild.sh"
+            POSTSCR="${HOSTDIR}/postbuild.sh"
             
             mkdir -p "${JOBDIR}"            
             cd "${JOBDIR}"
@@ -101,10 +103,38 @@ do
             
             echo "${JOBID}" > "${HOSTDIR}/build-running"
             echo "${JOBID}" > "${JOBDIR}/running"
+
+            if [ -f "${PRESCR}" ]
+            then
+                echo "$PROGN:  running host-specific prebuild script ${PRESCR} for project ${PROJECT} on host ${THOST} [job id ${JOBID}]"
+                echo "$PROGN:  running host-specific prebuild script ${PRESCR} for project ${PROJECT} on host ${THOST} [job id ${JOBID}]" >> ${JLOG}
+                sh "${PRESCR}" >> ${JLOG}
+                RETCODE=$?
+
+                if [ $RETCODE -gt 0 ]
+                then
+                    echo "$PROGN:  host-specific prebuild script failed for project ${PROJECT} on host ${THOST} [job id ${JOBID}]"
+                    echo "$PROGN:  host-specific prebuild script failed for project ${PROJECT} on host ${THOST} [job id ${JOBID}]" >> ${JLOG}
+
+                    rm -f "${HOSTDIR}/build-running"
+                    rm -f "${JOBDIR}/running"                   
+                    rm -f "${HOSTDIR}/build-failing"
+                    rm -f "${HOSTDIR}/build-passing"
+                    
+                    echo "${JOBID}" > "${HOSTDIR}/build-failing"
+                    echo "${JOBID}" > "${JOBDIR}/failing"
+
+                    exit 1                    
+                fi
+            else
+                echo "$PROGN:  no host-specific prebuild script exists for project ${PROJECT} on host ${THOST} [job id ${JOBID}]"
+                echo "$PROGN:  no host-specific prebuild script exists for project ${PROJECT} on host ${THOST} [job id ${JOBID}]" >> ${JLOG}
+            fi
             
             if [ -f "${JSCR}" ]
             then
                 echo "$PROGN:  running build script ${JSCR} for project ${PROJECT} [job id ${JOBID}]"
+                echo "$PROGN:  running build script ${JSCR} for project ${PROJECT} [job id ${JOBID}]" >> ${JLOG}
                 sh "${JSCR}" >> ${JLOG}
                 RETCODE=$?
 
@@ -123,6 +153,7 @@ do
                     *)
                         echo "${JOBID}" > "${HOSTDIR}/build-failing"
                         echo "${JOBID}" > "${JOBDIR}/failing"
+                        exit 1
                         ;;
 
                 esac
@@ -133,8 +164,34 @@ do
                 echo "$PROGN:  build script ${JSCR} missing for project ${PROJECT} [job id ${JOBID}]" >> "${JLOG}"
                 rm -f "${HOSTDIR}/build-running"
                 rm -f "${JOBDIR}/running"
+            fi
+
+            if [ -f "${POSTSCR}" ]
+            then
+                echo "$PROGN:  running host-specific postbuild script ${POSTSCR} for project ${PROJECT} on host ${THOST} [job id ${JOBID}]"
+                echo "$PROGN:  running host-specific postbuild script ${POSTSCR} for project ${PROJECT} on host ${THOST} [job id ${JOBID}]" >> ${JLOG}
+                sh "${POSTSCR}" >> ${JLOG}
+                RETCODE=$?
 
+                if [ $RETCODE -gt 0 ]
+                then
+                    echo "$PROGN:  host-specific postbuild script failed for project ${PROJECT} on host ${THOST} [job id ${JOBID}]"
+                    echo "$PROGN:  host-specific postbuild script failed for project ${PROJECT} on host ${THOST} [job id ${JOBID}]" >> ${JLOG}
+
+                    rm -f "${HOSTDIR}/build-running"
+                    rm -f "${JOBDIR}/running"                   
+                    rm -f "${HOSTDIR}/build-failing"
+                    rm -f "${HOSTDIR}/build-passing"
+                    
+                    echo "${JOBID}" > "${HOSTDIR}/build-failing"
+                    echo "${JOBID}" > "${JOBDIR}/failing"
+                    exit 1                    
+                fi
+            else
+                echo "$PROGN:  no host-specific postbuild script exists for project ${PROJECT} on host ${THOST} [job id ${JOBID}]"
+                echo "$PROGN:  no host-specific postbuild script exists for project ${PROJECT} on host ${THOST} [job id ${JOBID}]" >> ${JLOG}
             fi
+            
         fi
     fi