* reworking l-s startup it was failing to retry when starting with an invalid configuration * changed startup routine * start supervisor after update
77 lines
2.6 KiB
Bash
Executable file
77 lines
2.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
export LOG_FILE=/tmp/update.$(date +"%Y%m%d").log
|
|
export NPM_BIN=$(npm -g bin)
|
|
|
|
rm -f ${LOG_FILE}
|
|
|
|
decho () {
|
|
echo `date +"%H:%M:%S"` $1
|
|
echo `date +"%H:%M:%S"` $1 >> ${LOG_FILE}
|
|
}
|
|
|
|
cat <<'FIG'
|
|
_
|
|
| | __ _ _ __ ___ __ _ ___ ___ _ _ ___ ___ _ ____ _____ _ __
|
|
| |/ _` | '_ ` _ \ / _` / __/ __| | | |_____/ __|/ _ \ '__\ \ / / _ \ '__|
|
|
| | (_| | | | | | | (_| \__ \__ \ |_| |_____\__ \ __/ | \ V / __/ |
|
|
|_|\__,_|_| |_| |_|\__,_|___/___/\__,_| |___/\___|_| \_/ \___|_|
|
|
FIG
|
|
|
|
echo -e "\nStarting \033[1mlamassu-server\033[0m update. This will take a few minutes...\n"
|
|
|
|
if [ "$(whoami)" != "root" ]; then
|
|
echo -e "This script has to be run as \033[1mroot\033[0m user"
|
|
exit 3
|
|
fi
|
|
|
|
decho "stopping lamassu-server"
|
|
supervisorctl stop lamassu-server >> ${LOG_FILE} 2>&1
|
|
supervisorctl stop lamassu-admin-server >> ${LOG_FILE} 2>&1
|
|
|
|
decho "unlinking ${NPM_BIN}/lamassu* old executables"
|
|
find ${NPM_BIN} -type l \( -name "lamassu-*" -or -name "hkdf" \) -exec rm -fv {} \; >> ${LOG_FILE} 2>&1
|
|
|
|
if [ -d "/usr/lib/node_modules/lamassu-server" ]; then
|
|
decho "renaming old lamassu-server instance to lamassu-server-old"
|
|
mv -v "/usr/lib/node_modules/lamassu-server" "/usr/lib/node_modules/lamassu-server-old" >> ${LOG_FILE} 2>&1
|
|
fi
|
|
|
|
decho "updating node"
|
|
npm install n -g >> ${LOG_FILE} 2>&1
|
|
n lts >> ${LOG_FILE} 2>&1
|
|
decho "version installed $(node -v)"
|
|
export NPM_BIN=$(npm -g bin)
|
|
|
|
decho "updating lamassu-server"
|
|
npm -g install lamassu/lamassu-server#stable --unsafe-perm >> ${LOG_FILE} 2>&1
|
|
|
|
decho "rebuilding npm deps"
|
|
cd $(npm root -g)/lamassu-server/ >> ${LOG_FILE} 2>&1
|
|
npm rebuild >> ${LOG_FILE} 2>&1
|
|
|
|
decho "running migration"
|
|
lamassu-migrate >> ${LOG_FILE} 2>&1
|
|
lamassu-migrate-config >> ${LOG_FILE} 2>&1
|
|
|
|
decho "updating supervisor conf"
|
|
perl -i -pe 's/command=.*/command=$ENV{NPM_BIN}\/lamassu-server/g' /etc/supervisor/conf.d/lamassu-server.conf >> ${LOG_FILE} 2>&1
|
|
perl -i -pe 's/command=.*/command=$ENV{NPM_BIN}\/lamassu-admin-server/g' /etc/supervisor/conf.d/lamassu-admin-server.conf >> ${LOG_FILE} 2>&1
|
|
|
|
decho "updating lamassu-server"
|
|
supervisorctl update lamassu-server >> ${LOG_FILE} 2>&1
|
|
supervisorctl update lamassu-admin-server >> ${LOG_FILE} 2>&1
|
|
supervisorctl start lamassu-server >> ${LOG_FILE} 2>&1
|
|
supervisorctl start lamassu-admin-server >> ${LOG_FILE} 2>&1
|
|
|
|
decho "updating backups conf"
|
|
BACKUP_CMD=${NPM_BIN}/lamassu-backup-pg
|
|
BACKUP_CRON="@daily $BACKUP_CMD > /dev/null"
|
|
( (crontab -l 2>/dev/null || echo -n "") | grep -v '@daily.*lamassu-backup-pg'; echo $BACKUP_CRON ) | crontab - >> $LOG_FILE 2>&1
|
|
$BACKUP_CMD >> $LOG_FILE 2>&1
|
|
|
|
# reset terminal to link new executables
|
|
hash -r
|
|
|
|
decho "Update complete!"
|