Sebi-Machine/sebi_machine_launcher.sh
2018-06-21 19:56:08 +02:00

43 lines
1.1 KiB
Bash

#!/bin/bash
# 20th June 2018
# Esp: added a trap here, as it otherwise attempts to restart when given
# the interrupt signal. This is really annoying over SSH when I have
# a 1-second lag anyway.
trap "echo 'Received interrupt. Exiting.'; exit 0" SIGINT SIGTERM
# Also loads the venv if it is present.
[ -d .venv/bin ] && source .venv/bin/activate && echo "Entered venv." || echo "No venv detected."
function git-try-pull() {
git pull --all
}
FAIL_COUNTER=0
while true; do
if [ ${FAIL_COUNTER} -eq 4 ]; then
echo -e "\e[0;31mFailed four times in a row. Trying to repull.\e[0m"
git-try-pull
let FAIL_COUNTER=0
fi
# Just respawn repeatedly until sigint.
python3.6 -m sebimachine
EXIT_STATUS=${?}
if [ ${EXIT_STATUS} -ne 0 ]; then
let FAIL_COUNTER=${FAIL_COUNTER}+1
else
let FAIL_COUNTER=0
fi
# Added colouring to ensure the date of shutdown and the exit code stands
# out from the other clutter in the traceback that might have been output.
echo -e "\e[0;31m[$(date --utc)]\e[0m Sebi-Machine shutdown with error \e[0;31m${EXIT_STATUS}\e[0m. Restarting..." >&2
sleep 1
done