2021-08-04 00:18:30 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2022-05-07 17:05:57 +02:00
|
|
|
# main repo: https://github.com/cstenglein/raspiblitz-web
|
|
|
|
|
2021-08-04 00:18:30 +02:00
|
|
|
# command info
|
|
|
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "-help" ]; then
|
|
|
|
echo "Manage RaspiBlitz Web UI"
|
|
|
|
echo "blitz.web.ui.sh on [?GITHUBUSER] [?REPO] [?BRANCH]"
|
|
|
|
echo "blitz.web.ui.sh update"
|
|
|
|
echo "blitz.web.ui.sh off"
|
2022-01-25 19:33:30 +01:00
|
|
|
exit 0
|
2021-08-04 00:18:30 +02:00
|
|
|
fi
|
|
|
|
|
2022-05-05 10:59:50 +02:00
|
|
|
# check if started with sudo
|
|
|
|
if [ "$EUID" -ne 0 ]; then
|
|
|
|
echo "error='run as root'"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2021-08-04 00:18:30 +02:00
|
|
|
DEFAULT_GITHUB_USER="cstenglein"
|
|
|
|
DEFAULT_GITHUB_REPO="raspiblitz-web"
|
2022-05-07 17:05:57 +02:00
|
|
|
DEFAULT_GITHUB_BRANCH="master"
|
2021-08-04 00:18:30 +02:00
|
|
|
|
|
|
|
###################
|
|
|
|
# ON / INSTALL
|
|
|
|
###################
|
|
|
|
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|
|
|
|
|
|
|
if [ "$2" != "" ]; then
|
|
|
|
DEFAULT_GITHUB_USER="$2"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$3" != "" ]; then
|
|
|
|
DEFAULT_GITHUB_REPO="$3"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$4" != "" ]; then
|
|
|
|
DEFAULT_GITHUB_BRANCH="$4"
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "# INSTALL WebUI"
|
2022-05-05 10:59:50 +02:00
|
|
|
rm -r /root/blitz_web 2>/dev/null
|
2022-06-20 17:40:41 +02:00
|
|
|
rm -r /root/${DEFAULT_GITHUB_REPO} 2>/dev/null
|
2022-06-20 11:36:20 +01:00
|
|
|
cd /root || exit 1
|
2022-06-20 17:43:49 +02:00
|
|
|
if ! git clone https://github.com/${DEFAULT_GITHUB_USER}/${DEFAULT_GITHUB_REPO}.git; then
|
2022-05-18 16:34:45 +02:00
|
|
|
echo "error='git clone failed'"
|
|
|
|
exit 1
|
|
|
|
fi
|
2022-06-20 17:40:41 +02:00
|
|
|
mv /root/${DEFAULT_GITHUB_REPO} /root/blitz_web
|
2022-06-20 11:36:20 +01:00
|
|
|
cd blitz_web || exit 1
|
|
|
|
if ! git checkout ${DEFAULT_GITHUB_BRANCH}; then
|
2022-05-18 16:34:45 +02:00
|
|
|
echo "error='git checkout failed'"
|
|
|
|
exit 1
|
|
|
|
fi
|
2021-08-04 00:18:30 +02:00
|
|
|
|
|
|
|
echo "# Compile WebUI"
|
|
|
|
/home/admin/config.scripts/bonus.nodejs.sh on
|
|
|
|
source <(/home/admin/config.scripts/bonus.nodejs.sh info)
|
2022-06-20 11:36:20 +01:00
|
|
|
if ! npm install --global yarn; then
|
2022-05-18 16:34:45 +02:00
|
|
|
echo "error='install yarn failed'"
|
|
|
|
exit 1
|
|
|
|
fi
|
2022-01-14 20:53:10 +01:00
|
|
|
${NODEPATH}/yarn config set --home enableTelemetry 0
|
2022-06-20 11:36:20 +01:00
|
|
|
if ! ${NODEPATH}/yarn install; then
|
2022-05-18 16:34:45 +02:00
|
|
|
echo "error='yarn install failed'"
|
|
|
|
exit 1
|
|
|
|
fi
|
2022-06-20 11:36:20 +01:00
|
|
|
if ! ${NODEPATH}/yarn build; then
|
2022-05-18 16:34:45 +02:00
|
|
|
echo "error='yarn build failed'"
|
|
|
|
exit 1
|
|
|
|
fi
|
2021-08-04 00:18:30 +02:00
|
|
|
|
2022-05-05 10:59:50 +02:00
|
|
|
rm -r /var/www/public/* 2>/dev/null
|
|
|
|
cp -r /root/blitz_web/build/* /var/www/public
|
|
|
|
chown www-data:www-data -R /var/www/public
|
2021-08-04 00:18:30 +02:00
|
|
|
|
2022-01-25 19:33:30 +01:00
|
|
|
# install info
|
|
|
|
echo "# The WebUI is now available under:"
|
2022-05-05 10:59:50 +02:00
|
|
|
echo "# http://[LOCAIP]"
|
2022-01-25 19:33:30 +01:00
|
|
|
|
|
|
|
exit 0
|
2021-08-04 00:18:30 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
###################
|
|
|
|
# UPDATE
|
|
|
|
###################
|
|
|
|
if [ "$1" = "update" ]; then
|
2022-05-18 22:02:37 +02:00
|
|
|
webuiActive=$(sudo ls /root/blitz_web/README.md | grep -c "README")
|
|
|
|
if [ "${webuiActive}" != "0" ]; then
|
|
|
|
echo "# Update Web API"
|
|
|
|
cd /root/blitz_web
|
|
|
|
currentBranch=$(git rev-parse --abbrev-ref HEAD)
|
|
|
|
echo "# updating local repo ..."
|
|
|
|
oldCommit=$(git rev-parse HEAD)
|
|
|
|
git fetch
|
|
|
|
git reset --hard origin/${currentBranch}
|
|
|
|
newCommit=$(git rev-parse HEAD)
|
|
|
|
if [ "${oldCommit}" != "${newCommit}" ]; then
|
|
|
|
source <(/home/admin/config.scripts/bonus.nodejs.sh info)
|
|
|
|
${NODEPATH}/yarn install
|
|
|
|
${NODEPATH}/yarn build
|
|
|
|
sudo rm -r /var/www/public/* 2>/dev/null
|
|
|
|
sudo cp -r /root/blitz_web/build/* /var/www/public
|
|
|
|
sudo chown www-data:www-data -R /var/www/public
|
|
|
|
else
|
|
|
|
echo "# no code changes"
|
|
|
|
fi
|
|
|
|
echo "# BRANCH ---> ${currentBranch}"
|
|
|
|
echo "# old commit -> ${oldCommit}"
|
|
|
|
echo "# new commit -> ${newCommit}"
|
|
|
|
echo "# reload WebUI in your browser"
|
|
|
|
exit 0
|
|
|
|
else
|
|
|
|
echo "# webui not active"
|
|
|
|
exit 1
|
|
|
|
fi
|
2021-08-04 00:18:30 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
###################
|
|
|
|
# OFF / UNINSTALL
|
|
|
|
###################
|
|
|
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|
|
|
|
|
|
|
echo "# UNINSTALL WebUI"
|
2022-05-05 10:59:50 +02:00
|
|
|
sudo rm -r /root/blitz_web 2>/dev/null
|
2021-08-04 00:18:30 +02:00
|
|
|
sudo rm -r /var/www/public/* 2>/dev/null
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|