cronicle-docker/root/cronicle-prepare.sh
MrMeeb 613393f328
All checks were successful
continuous-integration/drone/push Build is passing
redesign around s6-overlay
2023-05-27 13:43:46 +00:00

107 lines
2.6 KiB
Bash

#!/command/with-contenv bash
# shellcheck shell=bash
echo "Preparing Cronicle"
#Importing and running additional scripts placed in /config/init
if [ -d /config/init ]
then
if [ "$(ls -A /config/init)" ]
then
echo "Running additional startup scripts."
bash /config/init/*
else
echo "/config/init is empty - no additional startup scripts detected."
fi
else
echo "Directory /config/init not found. Creating."
mkdir /config/init
fi
if [ ! -d /config/cronicle ]
then
echo "Directory /config/cronicle not found. Creating."
mkdir /config/cronicle
fi
#Detecting what mode Cronicle should be started in
if [ $MODE == "manager" ]
then
echo "Cronicle is running in 'manager' mode."
#Copying config directory to /config/cronicle/conf if not already there, then linking back into Cronicle
if [ ! -d /config/cronicle/conf ]
then
cp -r /app/cronicle/conf /config/cronicle/conf
rm -rf /app/cronicle/conf
ln -s /config/cronicle/conf /app/cronicle/conf
fi
if [ ! -f /config/cronicle/data/.setup_done ]
then
echo "Setup needed - running now."
/app/cronicle/bin/control.sh setup
touch /app/cronicle/data/.setup_done
#Moving data dir to /config, then linking it back into Cronicle
mv -n /app/cronicle/data /config/cronicle/data
rm -rf /app/cronicle/data
ln -s /config/cronicle/data /app/cronicle/data
#exec node /app/cronicle/lib/main.js --color 1
else
echo "Setup already completed."
rm -rf /app/cronicle/data
ln -s /config/cronicle/data /app/cronicle/data
#exec node /app/cronicle/lib/main.js --color 1
fi
elif [ $MODE == "worker" ]
then
echo "Cronicle is running in 'worker' mode."
if [ ! -f /config/cronicle/conf/config.json ]
then
echo "No config found. Copy config.json from the manager server and place it in /config/cronicle/conf dir."
mkdir -p /config/cronicle/conf
exit 0
else
#Removing default config.json and linking provided one back into Cronicle
rm -rf /app/cronicle/conf/config.json
ln -s /config/config.json /app/cronicle/conf/config.json
#exec node /app/cronicle/lib/main.js --color 1
fi
else
echo "'$MODE' is not a recognised appion for the MODE environment variable. Accepted appions are 'manager' and 'worker'."
fi
#echo "Applying permissions to /config and /app (this can take a while on first run or after PUID/PGID changes)"
#chmod "=rwx" /config
#chown -R mrmeeb:mrmeeb /config
#chown -R mrmeeb:mrmeeb /app