install-eg.sh: bugfixes and improvements
authorJeff Davis <jdavis@sitka.bclibraries.ca>
Wed, 18 Apr 2018 18:12:39 +0000 (11:12 -0700)
committerJeff Davis <jdavis@sitka.bclibraries.ca>
Wed, 18 Apr 2018 18:12:39 +0000 (11:12 -0700)
- install web client by default
- smoother install from tarball
- more error handling

deployment/install-eg.sh

index 0398758..caf90c1 100755 (executable)
@@ -9,7 +9,7 @@ INSTALLDIR="/srv/openils"
 BRANCH="user/jeffdavis/upgrade-310-tpac"
 STAMP_ID="rel_3_1_0"
 ALT_STAMP_IDS="3_1_0"
-VERSION="3.1.0.sitka.beta1"
+VERSION="3.1.0.sitka.1"
 SITKACONF="/home/${DEFAULT_USER}/sysadmin"
 SITKACONF_BRANCH="eg310"
 SITKATOOLS="/root/sitka-tools"
@@ -20,12 +20,12 @@ suwrap() {
   su -s /bin/bash -c "source ~/.bashrc ; $1" $2
 }
 
-while getopts ":pecwbt" opt ; do
+while getopts ":pecWbt" opt ; do
   case $opt in
     p ) PROD="prod";;
     e ) EDI="edi";;
     c ) CRONTAB="crontab";;
-    w ) WEBCLIENT="webclient";;
+    W ) SKIPWEBCLIENT="skipwebclient";;
     b ) USEBUNDLE="usebundle";;
     t ) TARBALL="tarball";;
   esac
@@ -45,20 +45,23 @@ fi
 if [ ! -d "${SITKACONF}" ]
 then
   # this will fail unless DEFAULT_USER has read access to the repo
-  suwrap "cd /home/${DEFAULT_USER} && git clone git+ssh://git@git.sitka.bclibraries.ca/sitka-infra/sysadmin" ${DEFAULT_USER}
+  suwrap "cd /home/${DEFAULT_USER} && git clone git+ssh://git@git.sitka.bclibraries.ca/sitka-infra/sysadmin" ${DEFAULT_USER} || { echo "Could not get config files; exiting." ; exit 1; }
 fi
-suwrap "cd ${SITKACONF} && git fetch origin && git checkout ${SITKACONF_BRANCH} && git pull" ${DEFAULT_USER}
+suwrap "cd ${SITKACONF} && git fetch origin && git checkout ${SITKACONF_BRANCH} && git pull" ${DEFAULT_USER} || { echo "Could not checkout ${SITKACONF_BRANCH} config files; exiting." ; exit 1; }
 
 if [[ -n "$TARBALL" ]] ; then
   EGRELEASE="Evergreen-ILS-${VERSION}"
+  EGRELEASETGZ="${EGRELEASE}"
+  [ ${VERSION} == "3.1.0" ] && EGRELEASETGZ="Evergreen-ILS-3.1.0a.tar.gz"
   BUILDDIR="/home/${INSTALL_USER}/${EGRELEASE}"
-  echo 'installing packaged upstream release ${VERSION}'
+  BRANCH="$VERSION"
+  echo "installing packaged upstream release ${EGRELEASE}"
   # download and unpack EG release
   rm -rf ${BUILDDIR}
-  if [ ! -f "/home/${INSTALL_USER}/${EGRELEASE}.tar.gz" ] ; then
-    suwrap "cd /home/${INSTALL_USER} && wget http://open-ils.org/downloads/${EGRELEASE}.tar.gz" ${INSTALL_USER} || { echo "Could not download EG release tarball ${EGRELEASE}.tar.gz" ; exit 1; }
+  if [ ! -f "/home/${INSTALL_USER}/${EGRELEASETGZ}" ] ; then
+    suwrap "cd /home/${INSTALL_USER} && wget http://open-ils.org/downloads/${EGRELEASETGZ}" ${INSTALL_USER} || { echo "Could not download EG release tarball ${EGRELEASETGZ}" ; exit 1; }
   fi
-  suwrap "cd /home/${INSTALL_USER} && tar xzf ${EGRELEASE}.tar.gz" ${INSTALL_USER}
+  suwrap "cd /home/${INSTALL_USER} && tar xzf ${EGRELEASETGZ}" ${INSTALL_USER}
 else
   # checkout EG source
   if [ ! -d "${BUILDDIR}" ]
@@ -71,13 +74,13 @@ fi
  
 # as root
 cd ${BUILDDIR} && make -f Open-ILS/src/extras/Makefile.install ubuntu-trusty
-if [[ -n "$WEBCLIENT" ]] ; then
+if [[ ! -n "$TARBALL" ]] ; then
   cd ${BUILDDIR} && make -f Open-ILS/src/extras/Makefile.install ubuntu-trusty-developer # required for web client
 fi
 # by default, CPAN needs some manual input at this point; you can just accept all defaults
  
 # web client
-if [[ -n "$WEBCLIENT" && ! -n "$TARBALL" ]] ; then
+if [[ ! -n "$TARBALL" && ! -n "$SKIPWEBCLIENT" ]] ; then
   if [[ -n "$USEBUNDLE" ]] ; then
     # use bundled web client dependencies from upstream
     if [ ! -d "/home/${INSTALL_USER}/web-client-deps" ] ; then
@@ -142,7 +145,7 @@ if [[ ! -n "$PROD" ]] ; then
 fi
 
 # websockets config
-if [[ -n "$WEBCLIENT" ]] ; then
+if [[ ! -n "$SKIPWEBCLIENT" ]] ; then
     # use nginx proxy for websockets traffic
     apt-get install -y nginx
     cp -b ${SITKACONF}/files/etc/nginx/sites-available/osrf-ws-http-proxy/${HOSTNAME} /etc/nginx/sites-available/osrf-ws-http-proxy
@@ -368,7 +371,4 @@ apt-get install -y libconfig-simple-perl libgit-repository-perl libdate-manip-pe
 apt-get install -y python-reportlab python-reportlab-accel unifont
 
 echo 'Evergreen is installed!'
-if [[ -n "$WEBCLIENT" ]] ; then
-  echo 'Remember to start the websockets service: /etc/init.d/apache2-websockets start'
-fi