install-eg.sh: optionally skip tests; optionally remove existing build dir and Node...
authorJeff Davis <jdavis@sitka.bclibraries.ca>
Wed, 8 Apr 2020 18:16:17 +0000 (11:16 -0700)
committerJeff Davis <jdavis@sitka.bclibraries.ca>
Wed, 8 Apr 2020 18:16:17 +0000 (11:16 -0700)
deployment/install-eg.sh

index 5be245b..499b9f4 100755 (executable)
@@ -22,7 +22,7 @@ suwrap() {
   su -s /bin/bash -c "source ~/.bashrc ; $1" $2
 }
 
-while getopts ":pecnWbtu" opt ; do
+while getopts ":pecnWbrtuD" opt ; do
   case $opt in
     p ) PROD="prod";;
     e ) EDI="edi";;
@@ -30,8 +30,10 @@ while getopts ":pecnWbtu" opt ; do
     n ) NFS="nfs";;
     W ) SKIPWEBCLIENT="skipwebclient";;
     b ) USEBUNDLE="usebundle";;
+    r ) RUNTESTS="runtests";;
     t ) TARBALL="tarball";;
     u ) UPDATEONLY="updateonly";;
+    D ) CLEANINSTALL="cleaninstall";;
   esac
 done
 shift $(($OPTIND - 1))
@@ -67,6 +69,7 @@ if [[ -n "$TARBALL" ]] ; then
   fi
   suwrap "cd /home/${INSTALL_USER} && tar xzf ${EGRELEASETGZ}" ${INSTALL_USER}
 else
+  if [[ -n "$CLEANINSTALL" ]] ; then rm -rf "${BUILDDIR}" ; fi
   # checkout EG source
   if [ ! -d "${BUILDDIR}" ]
   then
@@ -93,15 +96,22 @@ if [[ ! -n "$TARBALL" && ! -n "$SKIPWEBCLIENT" ]] ; then
     if [ -d "${BUILDDIR}/Open-ILS/web/js/ui/default/staff/build" ] ; then rm -rf ${BUILDDIR}/Open-ILS/web/js/ui/default/staff/build ; fi
     suwrap "cp -r /home/${INSTALL_USER}/web-client-deps/build ${BUILDDIR}/Open-ILS/web/js/ui/default/staff/build" ${INSTALL_USER}
   else
+    if [[ -n "$CLEANINSTALL" ]] ; then
+      cd /usr/local/bin/ && rm ng node npm npx
+      cd /usr/local/lib/ && rm -rf node_modules/
+      cd /home/${INSTALL_USER} # let's not end up in the wrong working directory
+    fi
     # install dependencies
     cd ${BUILDDIR}/Open-ILS/web/js/ui/default/staff/
     sed -i "s|'/openils/lib/javascript|'${INSTALLDIR}/lib/javascript|g" ${BUILDDIR}/Open-ILS/web/js/ui/default/staff/test/karma.conf.js
     suwrap "npm install" ${INSTALL_USER}
-    suwrap "npm run build-prod && npm run test" ${INSTALL_USER} || { echo 'Could not install files for AngularJS staff client' ; exit 1; }
+    suwrap "npm run build-prod" ${INSTALL_USER} || { echo 'Could not install files for AngularJS staff client' ; exit 1; }
+    if [ -n "$RUNTESTS" ] ; then suwrap "npm run test" ${INSTALL_USER} || { echo 'Tests failed for AngularJS staff client' ; exit 1; } ; fi
     cd ${BUILDDIR}/Open-ILS/src/eg2/
     sed -i "s|'/openils/lib/javascript|'${INSTALLDIR}/lib/javascript|g" ${BUILDDIR}/Open-ILS/src/eg2/karma.conf.js
     suwrap "npm install" ${INSTALL_USER}
-    suwrap "ng build --prod && npm run test" ${INSTALL_USER} || { echo 'Could not install files for Angular staff client' ; exit 1; }
+    suwrap "ng build --prod" ${INSTALL_USER} || { echo 'Could not install files for Angular staff client' ; exit 1; }
+    if [ -n "$RUNTESTS" ] ; then suwrap "npm run test" ${INSTALL_USER} || { echo 'Tests failed for Angular staff client' ; exit 1; } ; fi
   fi
 fi