#!/command/with-contenv bash # shellcheck shell=bash echo "Preparing Cronicle" 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 echo "Config dir is missing, creating." cp -r /app/cronicle/conf /config/cronicle/conf rm -rf /app/cronicle/conf ln -s /config/cronicle/conf /app/cronicle/conf else echo "Config dir already exists. Doesn't need creating." echo "Linking persistent config dir back into Cronicle." rm -rf /app/cronicle/conf ln -s /config/cronicle/conf /app/cronicle/conf fi if [ ! -f /config/cronicle/conf/ssl.crt ] || [ ! -f /config/cronicle/conf/ssl.key ] then echo "One or both SSL components are missing. Generating." rm -f /config/cronicle/conf/ssl.crt /config/cronicle/conf/ssl.key openssl req -x509 -newkey rsa:4096 -keyout /config/cronicle/conf/ssl.key -out /config/cronicle/conf/ssl.crt -sha256 -days 3650 -nodes -subj "/C=XX/ST=StateName/L=CityName/O=CompanyName/OU=CompanySectionName/CN=CommonNameOrHostname" 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 else echo "Setup already completed." rm -rf /app/cronicle/data ln -s /config/cronicle/data /app/cronicle/data fi elif [ $MODE == "worker" ] then echo "Cronicle is running in 'worker' mode." #Copying config directory to /config/cronicle/conf if not already there, then linking back into Cronicle 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." cp -R /app/cronicle/conf /config/cronicle/conf rm -rf /config/cronicle/conf/config.json echo '' echo '' echo '*************************************' exit 1 else echo "Config is present." echo "Linking persistent config dir back into Cronicle." rm -rf /app/cronicle/conf ln -s /config/cronicle/conf /app/cronicle/conf fi else echo "'$MODE' is not a recognised appion for the MODE environment variable. Accepted options are 'manager' and 'worker'." exit 1 fi #Expose log directory if [ ! -d /config/cronicle/logs ] then echo "Logs dir is missing, creating." cp -r /app/cronicle/logs /config/cronicle/logs rm -rf /app/cronicle/logs ln -s /config/cronicle/logs /app/cronicle/logs else echo "Logs dir already exists. Doesn't need creating." echo "Linking persistent logs dir back into Cronicle." rm -rf /app/cronicle/logs ln -s /config/cronicle/logs /app/cronicle/logs fi