#!/bin/bash APP=bordroesleme PRJ_ROOT=${HOME}/prj/notitek/bordro-esleme SVC_ROOT=${PRJ_ROOT}/svc UI_ROOT=${PRJ_ROOT}/ui DEST_IP=37.27.82.185 echo "Building ${APP} executable" cd ${SVC_ROOT} if [[ $OSTYPE == 'darwin'* ]]; then GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-w -s" -o ./$APP ./main.go else GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-w -s" -o ./$APP ./main.go fi echo "Building SPA" cd ${UI_ROOT} version="0.alfa" dt=$(date +%y%m%d-%H%M) # gt=$(git rev-parse --short HEAD) echo " const vdata = { version: '${version}', build: '$dt' } export default vdata" > ./version.js quasar build echo "Copying executables" scp ${SVC_ROOT}/${APP} root@${DEST_IP}:/opt/${APP}/${APP}.new # scp ${SVC_ROOT}/upgrader/upgrader root@${DEST_IP}:/opt/${APP}/upgrader echo "Transferring additional files" #rsync -azP ${SVC_ROOT}/templates/ root@${DEST_IP}:/opt/${APP}/templates --delete rsync -azP ${PRJ_ROOT}/db/sqls root@${DEST_IP}:/opt/${APP} --delete #rsync -azP ${SVC_ROOT}/fonts/ root@${DEST_IP}:/opt/${APP}/fonts --delete rsync -azP ${PRJ_ROOT}/db/migration/base root@${DEST_IP}:/opt/${APP}/migrate --delete rsync -azP ${UI_ROOT}/dist/spa/ root@${DEST_IP}:/opt/${APP}/ui --delete echo "Migrating database" ssh root@${DEST_IP} "/opt/migrater -folder /opt/${APP}/migrate/base -db ${APP} -host 10.0.0.2 -tracker base -migrate-table symigrate -password tesnos.+ed" echo "Updating system" ssh root@${DEST_IP} "sudo systemctl stop ${APP}.service" ssh root@${DEST_IP} "sudo rm /opt/${APP}/${APP}" ssh root@${DEST_IP} "sudo mv /opt/${APP}/${APP}.new /opt/${APP}/${APP}" ssh root@${DEST_IP} "chown -R ${APP}.${APP} /opt/${APP}" ssh root@${DEST_IP} "sudo systemctl start ${APP}.service" # remove compiled binary cd ${SVC_ROOT} rm -rf ./$APP