Last active
January 17, 2023 09:25
-
-
Save 128keaton/b2273eae9e28de0ac92d27b26daef369 to your computer and use it in GitHub Desktop.
Simple script to update a SPA
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Spinner code stolen from https://willcarh.art/blog/how-to-write-better-bash-spinners | |
trap stop_spinner EXIT | |
function start_spinner { | |
set +m | |
echo -n "$1 " | |
{ while : ; do for X in ' • ' ' • ' ' • ' ' • ' ' • ' ' • ' ' • ' ' • ' ' • ' ' • ' ; do echo -en "\b\b\b\b\b\b\b\b$X" ; sleep 0.1 ; done ; done & } 2>/dev/null | |
spinner_pid=$! | |
} | |
function stop_spinner { | |
{ kill -9 $spinner_pid && wait; } 2>/dev/null | |
set -m | |
echo -en "\033[2K\r" | |
} | |
echo > update-app.log | |
printf "Updating UI. " | |
cd /home/arfid/ARFID-UI/ | |
git reset --hard HEAD &>> update-app.log | |
git pull &>> update-app.log | |
printf "Done!" | |
echo | |
spinner_pid= | |
start_spinner "Installing UI dependencies. " | |
npm install --force &>> update-app.log | |
stop_spinner | |
printf "Installing UI dependencies. Done!" | |
echo | |
spinner_pid= | |
start_spinner "Rebuilding UI. " | |
npm run build &>> update-app.log | |
stop_spinner | |
printf "Rebuilding UI. Done!" | |
echo | |
printf "Updating API." | |
cd /home/arfid/ARFID/ && | |
git reset --hard HEAD &>> update-app.log | |
git pull &>> update-app.log | |
printf " Done!" | |
echo | |
spinner_pid= | |
start_spinner "Updating API dependencies. " | |
npm install &>> update-app.log | |
stop_spinner | |
printf "Updating API dependencies. Done!" | |
echo | |
printf "Updating database schema." | |
npx prisma migrate deploy &>> update-app.log | |
printf " Done!" | |
echo | |
printf "Generating database types." | |
npx prisma generate &>> update-app.log | |
printf " Done!" | |
echo | |
spinner_pid= | |
start_spinner "Rebuilding API. " | |
npm run build &>> update-app.log | |
stop_spinner | |
printf "Rebuilding API. Done!" | |
echo | |
printf "Restarting application." | |
pm2 restart arfid &>> update-app.log | |
printf " Done!" | |
echo | |
echo "Logfile available at update-app.log" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment