NurseBot/buildtools/build.sh

103 lines
1.9 KiB
Bash
Raw Normal View History

2018-07-10 19:19:55 +00:00
#!/bin/bash
2018-07-10 19:49:26 +00:00
DEPLOY=$1
VERSIONS=./versions
2018-07-10 19:19:55 +00:00
EXIT_SUCCESS=0
EXIT_COMPILE_FAILED=1
EXIT_PACKING_FAILED=2
2018-07-10 19:28:55 +00:00
EXIT_INSTRUMENTATION_FAILED=3
2018-07-10 19:49:26 +00:00
EXIT_READY_FAILED=4
2018-07-10 19:19:55 +00:00
mkdir -p ../bin/
mkdir -p ../build/
mkdir -p ../build/NurseBot_lib/
pushd ../src/
2018-07-14 21:51:49 +00:00
export manifest_cp=.
2018-07-13 16:11:50 +00:00
for file in $(ls ../build/NurseBot_lib); do
2018-07-14 21:21:02 +00:00
echo "found lib: $file"
2018-07-13 16:11:50 +00:00
export CLASSPATH=$CLASSPATH:../build/NurseBot_lib/$file
2018-07-14 21:51:49 +00:00
export manifest_cp="$manifest_cp NurseBot_lib/$file"
done
2018-07-10 19:49:26 +00:00
echo "Building... "
2018-11-02 18:53:09 +00:00
javac -cp "$CLASSPATH" -d ../bin/ $(find ./ -iname "*.java")
2018-07-10 19:19:55 +00:00
if test ! $? = 0; then
2018-07-10 19:49:26 +00:00
echo "... failed"
2018-07-10 19:19:55 +00:00
exit $EXIT_COMPILE_FAILED
fi
2018-07-10 19:49:26 +00:00
echo "... done"
2018-07-10 19:19:55 +00:00
popd
2018-07-14 21:21:02 +00:00
pushd ../buildtools/
2018-07-10 19:19:55 +00:00
2018-07-10 19:49:26 +00:00
echo "Building instrumentation..."
2018-07-10 19:26:29 +00:00
./instrumentation.sh
2018-07-10 19:28:55 +00:00
if test ! $? = 0; then
2018-07-10 19:49:26 +00:00
echo "... failed"
2018-07-10 19:28:55 +00:00
exit $EXIT_INSTRUMENTATION_FAILED
fi
2018-07-10 19:49:26 +00:00
echo "... done"
2018-07-10 19:26:29 +00:00
2018-07-10 19:49:26 +00:00
echo "Copying instrumentation..."
2018-07-10 19:26:29 +00:00
cp ../bin/activejdbc_models.properties ../build/
2018-07-10 19:49:26 +00:00
if test ! $? = 0; then
echo "... failed"
exit $EXIT_INSTRUMENTATION_FAILED
fi
echo "... done"
2018-07-14 21:21:02 +00:00
popd
pushd ../bin/
2018-11-19 15:42:06 +00:00
rm -r *
2018-07-14 21:51:49 +00:00
MAX_LINE=72
manifest_cp="lass-Path: $manifest_cp"
manifest_cp="$(echo $manifest_cp | fold -bw $((MAX_LINE - 1)) | awk '{ if (NR == 1) print "C" $0; else print " " $0}')"
cat > ../build/MANIFST.MF <<EOF
Manifest-Version: 1.0
$manifest_cp
Main-Class: asylum.nursebot.NurseNoakes
EOF
2018-07-14 21:21:02 +00:00
echo "Packing jar..."
2018-07-14 21:51:49 +00:00
jar cmf ../build/MANIFST.MF ../build/NurseBot.jar $(find ./ -iname "*.class")
2018-07-14 21:21:02 +00:00
if test ! $? = 0; then
echo "... failed"
exit $EXIT_PACKING_FAILED
fi
echo "... done"
popd
2018-07-10 19:49:26 +00:00
pushd ../build
2018-07-14 21:21:02 +00:00
2018-07-10 19:49:26 +00:00
echo "Determine version..."
version=$(java -jar NurseBot.jar -v)
echo "This is version $version."
if test ! "$DEPLOY" = ""; then
2018-07-13 16:28:35 +00:00
echo "Set to deploy ($DEPLOY/$VERSIONS/NurseBot$version.jar)
..."
2018-07-14 21:21:02 +00:00
cp activejdbc_models.properties $DEPLOY/$VERSIONS/activejdbc_models$version.properties
2018-07-13 16:25:07 +00:00
cp NurseBot.jar $DEPLOY/$VERSIONS/NurseBot$version.jar
2018-07-10 19:49:26 +00:00
if test ! $? = 0; then
echo "... failed"
exit $EXIT_READY_FAILED
fi
echo "... done"
fi
echo "Overall done."
popd
2018-07-10 19:26:29 +00:00
2018-07-10 19:19:55 +00:00
exit $EXIT_SUCCESS