]> git.pond.sub.org Git - empserver/commitdiff
Make it possible to skip steps of the build by specifying so in the
authorMarc Olzheim <marcolz@stack.nl>
Sun, 20 Jun 2004 16:36:51 +0000 (16:36 +0000)
committerMarc Olzheim <marcolz@stack.nl>
Sun, 20 Jun 2004 16:36:51 +0000 (16:36 +0000)
environment variable "NIGHTLY_SKIP_STEP", making it easier to debug
problems in the build.

src/scripts/nightly/nightlybuild.sh

index 0a5ea003508d06c4febac7514cb7decba47f78ab..a34e4bde3d6ef434fee41c36c6682abc05c64038 100755 (executable)
@@ -2,6 +2,19 @@
 #
 # Blame it on marcolz
 #
+# Skip certain parts of this script by exporting the variable
+# "NIGHTLY_SKIP_STEP" containing the following possible substrings,
+# preventing the named behaviour:
+#
+# REDIRECT     -       Redirect all output to a logfile
+# CHECKOUT     -       Fill the sandbox with a fresh cvs checkout
+# BUILD                -       Build everything
+# GENERATE     -       Generate a new world
+# SERVERSTART  -       Start the server
+# TESTSCRIPT   -       Run the testscript
+# SERVERSTOP   -       Stop the server if it was started by this script
+# CLEANUP      -       Remove the contents of the sandbox
+#
 
 # For some reason, solaris sh exits as soon as both stderr and stdout
 # are redirected to file at the exec, so if we run on solaris, use ksh
@@ -56,10 +69,24 @@ WORKDIR="${EMPTARGET}.${ARCH}"
 [ -n "${EXTRASUFFIX}" ] && WORKDIR="${WORKDIR}.${EXTRASUFFIX}"
 LOGFILE="${LOGDIR}/${WORKDIR}.${STAMP}"
 
+#
+# START REDIRECT
+#
+case "${NIGHTLY_SKIP_STEP}"
+in
+       *REDIRECT*) ;;
+       *)
+
 # Log everything
 exec > "${LOGFILE}"
 exec 2>&1
 
+               ;;
+esac
+#
+# END REDIRECT
+#
+
 case "${BOXDIR}"
 in
        /*)
@@ -74,8 +101,15 @@ cd "${BOXDIR}" || err "Could not chdir to ${BOXDIR}"
 echo "Nightly build starting at `date`"
 
 
-# Make sandbox
+#
+# START CHECKOUT
+#
+case "${NIGHTLY_SKIP_STEP}"
+in
+       *CHECKOUT*) ;;
+       *)
 
+# Make sandbox
 mkdir "${WORKDIR}" || warn "Could not create ${BOXDIR}/${WORKDIR}"
 cd "${WORKDIR}" || err "Could not cd to ${BOXDIR}/${WORKDIR}"
 
@@ -91,6 +125,20 @@ done
 echo "Done (CVS)."
 echo ""
 
+               ;;
+esac
+#
+# END CHECKOUT
+#
+
+#
+# START PATCH
+#
+case "${NIGHTLY_SKIP_STEP}"
+in
+       *PATCH*) ;;
+       *)
+
 echo "Applying global patches from patches/All:"
 for i in "${SCRIPTDIR}/patches/All"/*.patch
 do
@@ -147,6 +195,20 @@ sed        -e "s,^USERNAME = .*$,USERNAME = ${EMPLOGIN}," \
 echo "Done (build.conf)."
 echo ""
 
+               ;;
+esac
+#
+# END PATCH
+#
+
+#
+# START BUILD
+#
+case "${NIGHTLY_SKIP_STEP}"
+in
+       *BUILD*) ;;
+       *)
+
 # TODO: this should be fixed another way...
 echo "Generating empty Makedepends."
 touch src/client/Makedepend src/doconfig/Makedepend src/lib/as/Makedepend src/lib/commands/Makedepend src/lib/common/Makedepend src/lib/empthread/Makedepend src/lib/gen/Makedepend src/lib/global/Makedepend src/lib/lwp/Makedepend src/lib/player/Makedepend src/lib/subs/Makedepend src/lib/update/Makedepend src/server/Makedepend src/util/Makedepend || err "Could tot touch Makedepends"
@@ -162,9 +224,23 @@ fi
 echo "Done (make)."
 echo ""
 
+               ;;
+esac
+#
+# END BUILD
+#
+
 # Try to run startup utilities
 for onetime in 1
 do
+       #
+       # START GENERATE
+       #
+       case "${NIGHTLY_SKIP_STEP}"
+       in
+               *GENERATE*) ;;
+               *)
+
        if [ -d ../emp4 -a -d ../emp4/bin -a -d ../emp4/data ]
        then
                echo "Directory structure is ok"
@@ -187,6 +263,20 @@ do
        echo "Done (files & fairland)."
        echo ""
 
+                       ;;
+       esac
+       #
+       # END GENERATE
+       #
+
+       #
+       # START SERVERSTART
+       #
+       case "${NIGHTLY_SKIP_STEP}"
+       in
+               *SERVERSTART*) ;;
+               *)
+
        echo "Starting server with -d in the background"
        ./emp_server -d &
        PID="$!"
@@ -195,6 +285,20 @@ do
        echo "Done (emp_server)."
        echo ""
 
+                       ;;
+       esac
+       #
+       # END SERVERSTART
+       #
+
+       #
+       # START GENERATE (2nd part)
+       #
+       case "${NIGHTLY_SKIP_STEP}"
+       in
+               *GENERATE*) ;;
+               *)
+
        echo "Running newcap_script through emp_client"
        runfeed POGO peter < newcap_script >/dev/null 2>&1 ||
                {
@@ -221,6 +325,20 @@ give uw * ?uw>0 5
 EOF
        echo "Done (preparing)."
        echo ""
+       
+                       ;;
+       esac
+       #
+       # END GENERATE (2nd part)
+       #
+
+       #
+       # START TESTSCRIPT
+       #
+       case "${NIGHTLY_SKIP_STEP}"
+       in
+               *TESTSCRIPT*) ;;
+               *)
 
        for PLAYER in 1 2 3 4 5 6 7 8 9 10
        do
@@ -240,6 +358,7 @@ EOF
        runfeed POGO peter << EOF
 power new
 cen * ?own#0
+reso * ?own#0
 enable
 force 1
 disable
@@ -251,6 +370,7 @@ EOF
        echo "Check player 1"
        runfeed 1 << EOF
 cen *
+map #
 read n
 EOF
        echo "Done (check)."
@@ -268,12 +388,45 @@ EOF
        echo "Done (Rudimentary tests)."
        echo ""
 
+                       ;;
+       esac
+       #
+       # END TESTSCRIPT
+       #
+
+       #
+       # START SERVERSTOP
+       #
+       case "${NIGHTLY_SKIP_STEP}"
+       in
+               *SERVERSTOP*) ;;
+               *)
+                       case "${NIGHTLY_SKIP_STEP}"
+                       in
+                               *SERVERSTART*) ;;
+                               *)
+
        echo "Stopping server"
        trykill "${PID}"
        echo "Done (kill)."
        echo ""
+                                       ;;
+                       esac
+                       ;;
+       esac
+       #
+       # END SERVERSTOP
+       #
 done
 
+#
+# START CLEANUP
+#
+case "${NIGHTLY_SKIP_STEP}"
+in
+       *CLEANUP*) ;;
+       *)
+
 echo "Cleaning sandbox"
 cd "${BOXDIR}" || err "Could not cd back to sanbox root !"
 rm -r "${WORKDIR}" || warn "Directory ${WORKDIR} could not be cleanly removed !"
@@ -281,6 +434,12 @@ rm -rf "${WORKDIR}" || warn "Directory ${WORKDIR} could not be forcibly removed
 [ -d "${WORKDIR}/." ] && warn "Directory ${WORKDIR} still present"
 echo "Done (cleaning)."
 
+               ;;
+esac
+#
+# END CLEANUP
+#
+
 echo "Nightly build finished at `date`"
 
 exit 0