Newer
Older
eCourse / runner.sh
@TLCD96 TLCD96 on 28 Aug 2024 2 KB Update
#!/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}