#!/bin/bash # This script (known as ${0} to itself) is in # /source/scripts/, and we want to know where # is without forcing a hard-coding on anyone. This is how we do that. export DEV_HOME=$(cd $(dirname ${0})/../..; pwd) # Go to our top-level development directory. cd ${DEV_HOME} # Checkout the lesson-4 tag (any of lesson-1, lesson-2, lesson-3 or # lesson-4 would work just as well). git checkout lesson-4 # Confirm we have a javac javac -version # If this doesn't work, we'll stop here. if [ ${?} -ne 0 ]; then exit 1 fi # Set the CLASSPATH export CLASSPATH=/usr/share/java/tomcat8-servlet-api.jar:${CLASSPATH} # Go to where the java source is cd ${DEV_HOME}/source/java # Compile them javac org/gibiris/javaBootcampNoEclipse/*.java # If this doesn't work, we'll stop here. if [ ${?} -ne 0 ]; then exit 1 fi # Confirm ls -l org/gibiris/javaBootcampNoEclipse/*.class # Prepare for the jar file mkdir -pv ../lib # We're going with including the source as well jar cvf ../lib/javaBootcampNoEclipse.jar org # If this doesn't work, we'll stop here. if [ ${?} -ne 0 ]; then exit 1 fi # Confirm ls -l ${DEV_HOME}/source/lib/javaBootcampNoEclipse.jar # Prepare for the war file (this command creates all the dirs we need # created) mkdir -vp ${DEV_HOME}/webapp/WEB-INF/lib cd ${DEV_HOME}/webapp # Copy the candidate files into place. cp -rv ${DEV_HOME}/source/jsps/* ${DEV_HOME}/webapp cp -rv ${DEV_HOME}/source/lib/javaBootcampNoEclipse.jar ${DEV_HOME}/webapp/WEB-INF/lib cp -rv ${DEV_HOME}/source/res/web.xml ${DEV_HOME}/webapp/WEB-INF # Create the war file jar cvf ${DEV_HOME}/source/lib/javaBootcampNoEclipse.war * # If this doesn't work, we'll stop here. if [ ${?} -ne 0 ]; then exit 1 fi # Preserve the war file mv -v ${DEV_HOME}/source/lib/javaBootcampNoEclipse{,-up-to-lesson-4}.war # Clean up cd ${DEV_HOME} rm -vf ${DEV_HOME}/source/java/org/gibiris/javaBootcampNoEclipse/*.class rm -vf ${DEV_HOME}/source/lib/javaBootcampNoEclipse.?ar rm -vfr ${DEV_HOME}/webapp # Update the repository to get the changes git checkout lesson-5-working # We add the necessaries to the CLASSPATH export CLASSPATH=${DEV_HOME}/source/lib/AstroLib-1.1.5ws.jar:${DEV_HOME}/source/java:${CLASSPATH} # Go to where the source is cd ${DEV_HOME}/source/java # Compile them javac org/gibiris/javaBootcampNoEclipse/*.java # If this doesn't work, we'll stop here. if [ ${?} -ne 0 ]; then exit 1 fi # Confirm ls -l org/gibiris/javaBootcampNoEclipse/*{,/*}.class # Again, we're including the source as well jar cvf ../lib/javaBootcampNoEclipse.jar org # If this doesn't work, we'll stop here. if [ ${?} -ne 0 ]; then exit 1 fi # Confirm ls -l ${DEV_HOME}/source/lib/javaBootcampNoEclipse.jar # Prepare for the war file (this command creates all the dirs we need # created) mkdir -vp ${DEV_HOME}/webapp/WEB-INF/lib cd ${DEV_HOME}/webapp # Copy the candidate files into place, including the additional one. cp -rv ${DEV_HOME}/source/jsps/* ${DEV_HOME}/webapp cp -rv ${DEV_HOME}/source/lib/javaBootcampNoEclipse.jar ${DEV_HOME}/webapp/WEB-INF/lib cp -rv ${DEV_HOME}/source/lib/AstroLib-1.1.5ws.jar ${DEV_HOME}/webapp/WEB-INF/lib cp -rv ${DEV_HOME}/source/res/web.xml ${DEV_HOME}/webapp/WEB-INF # Create the war file jar cvf ${DEV_HOME}/source/lib/javaBootcampNoEclipse.war * # If this doesn't work, we'll stop here. if [ ${?} -ne 0 ]; then exit 1 fi # Preserve the war file mv -v ${DEV_HOME}/source/lib/javaBootcampNoEclipse{,-lesson-5}.war cd ${DEV_HOME} rm -vf ${DEV_HOME}/source/java/org/gibiris/javaBootcampNoEclipse/*.class rm -vf ${DEV_HOME}/source/java/org/gibiris/javaBootcampNoEclipse/Astro/*.class rm -vf ${DEV_HOME}/source/lib/javaBootcampNoEclipse.?ar rm -vfr ${DEV_HOME}/webapp # Let's get back to where we started, git-wise git checkout all-lessons-in-one-shell-script