#!/bin/bash
cd /eCourse/ui
source .env
rebuild_web="0";
eCourseTD=$(date '+%Y-%m-%d %H:%M:%S');
update_time(){
# put current date as yyyy-mm-dd HH:MM:SS in $date
eCourseTD=$(date '+%Y-%m-%d %H:%M:%S');
}
command(){
echo "└─ $1"
}
debug_run(){
if [[ "$DEBUG" == "1" ]]; then
echo "running command $1";
fi
$1 2>&1;
} 2>&1;
if [[ "${FORCE_REBUILD}" == "1" ]]; then
rebuild_web="1"
echo "Force Re-Build"
fi
echo "DEBUG = ${DEBUG}"
if [[ "${DEBUG}" == "" || "${DEBUG}" == "0" ]]; then
echo "Debug Not Enabled, Use Enviorment Variable 'DEBUG' with value '1' to enable it"
fi
if [[ "$DEBUG" == "1" ]]; then
echo "";echo "";
echo "DEBUG:"
echo "### Vars Info:"
echo "";echo "";
echo "VITE_DEV_PB_URL = ${VITE_DEV_PB_URL}"
echo "DEV_PB_URL = ${DEV_PB_URL}"
echo "VITE_PROD_PB_URL = ${VITE_PROD_PB_URL}"
echo "PROD_PB_URL = ${PROD_PB_URL}"
fi;
if [[ "${DEV_PB_URL}" == "" && "${VITE_DEV_PB_URL}" == "" ]]; then
DEV_PB_URL="http://127.0.0.1:90"
fi
if [[ "${VITE_DEV_PB_URL}" != "${DEV_PB_URL}" ]]; then
sed -i 's/^VITE_DEV_PB_URL=.*/VITE_DEV_PB_URL=${DEV_PB_URL}/' /eCourse/ui/.env
rebuild_web="1"
if [[ "$DEBUG" == "1" ]]; then
echo "";echo "";
echo "DEBUG:"
echo "### VITE_DEV_PB_URL Change"
echo "";echo "";
echo "VITE_DEV_PB_URL = '${VITE_DEV_PB_URL}'"
echo "DEV_PB_URL = '${DEV_PB_URL}'"
echo "Trigger Rebuild"
fi;
VITE_DEV_PB_URL="${DEV_PB_URL}"
fi;
if [[ "${VITE_PROD_PB_URL}" == "" && "${PROD_PB_URL}" == "" ]]; then
PROD_PB_URL="http://127.0.0.1:80"
fi
if [[ "${VITE_PROD_PB_URL}" != "${PROD_PB_URL}" ]]; then
sed -i 's/^VITE_PROD_PB_URL=.*/VITE_PROD_PB_URL=${PROD_PB_URL}/' /eCourse/ui/.env
rebuild_web="1";
if [[ "$DEBUG" == "1" ]]; then
echo "";echo "";
echo "DEBUG:"
echo "### VITE_PROD_PB_URL Change"
echo "";echo "";
echo "VITE_PROD_PB_URL = '${VITE_PROD_PB_URL}'"
echo "PROD_PB_URL = '${PROD_PB_URL}'"
echo "Trigger Rebuild"
fi;
VITE_PROD_PB_URL="${PROD_PB_URL}"
fi;
if [[ "${DEBUG}" == "1" ]]; then
echo "";echo "";
echo "DEBUG:"
echo "### Rebuild Web"
echo "rebuild_web = ${rebuild_web}"
fi;
if [[ "${rebuild_web}" == "1" ]]; then
debug_run "npm audit fix" 2>&1
debug_run "npx update-browserslist-db@latest" 2>&1
debug_run "npm install" 2>&1
debug_run "npm run build" 2>&1
debug_run "rm /eCourse/pb/pb_public/* -r" 2>&1 #recursive delete
debug_run "rm /eCourse/pb/pb_public/.*" 2>&1
debug_run "mv dist/* /eCourse/pb/pb_public" 2>&1
fi;
if [[ "${PB_SERVE_HOST}" == "" ]]; then
PB_SERVE_HOST="0.0.0.0"
fi
if [[ "$PB_SERVE_PORT" == "" ]]; then
PB_SERVE_PORT="80"
fi
PB_SERVE="${PB_SERVE_HOST}:${PB_SERVE_PORT}"
update_time;
echo "${eCourseTD} Ilyas-Codes/eCourse started to frontend:"
command "Users UI: ${VITE_PROD_PB_URL}"
command "Admin UI: ${VITE_PROD_PB_URL}/_/"
command "REST API: ${VITE_PROD_PB_URL}/api/"
echo "PocketBase Server"
/eCourse/pb/pocketbase serve --http=${PB_SERVE}