This repository has been archived on 2025-05-28. You can view files and clone it, but cannot push or open issues or pull requests.
Files
docker-anope/scripts/start-server.sh

80 lines
3.7 KiB
Bash

#!/bin/bash
LAT_V="$(wget -qO- https://github.com/ich777/versions/raw/master/Anope | grep FORK | cut -d '=' -f2)"
if [ -z "$LAT_V" ]; then
LAT_V="$(curl -s https://api.github.com/repos/ich777/anope/releases/latest | grep tag_name | cut -d '"' -f4)"
fi
CUR_V="$(${DATA_DIR}/bin/services --version 2>/dev/null | cut -d '-' -f2- | cut -d ' ' -f1)"
if [ -z $LAT_V ]; then
if [ -z $CUR_V ]; then
echo "---Can't get latest version of Anope, falling back to v2.0.7---"
LAT_V="2.0.7"
else
echo "---Can't get latest version of Anope, falling back to v$CUR_V---"
fi
fi
echo "---Version Check---"
if [ -z "$CUR_V" ]; then
echo "---Anope not found, downloading and installing v$LAT_V...---"
cd ${DATA_DIR}
if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${DATA_DIR}/Anope-v$LAT_V.tar.gz "https://github.com/ich777/anope/releases/download/$LAT_V/Anope-v$LAT_V.tar.gz" ; then
echo "---Successfully downloaded Anope v$LAT_V---"
else
echo "---Something went wrong, can't download Anope v$LAT_V, putting container into sleep mode!---"
sleep infinity
fi
tar -C ${DATA_DIR} --strip-components=1 -xf ${DATA_DIR}/Anope-v$LAT_V.tar.gz
rm ${DATA_DIR}/Anope-v$LAT_V.tar.gz
elif [ "$CUR_V" != "$LAT_V" ]; then
echo "---Version missmatch, installed v$CUR_V, downloading and installing latest v$LAT_V...---"
cd ${DATA_DIR}
if wget -q -nc --show-progress --progress=bar:force:noscroll -O ${DATA_DIR}/Anope-v$LAT_V.tar.gz "https://github.com/ich777/anope/releases/download/$LAT_V/Anope-v$LAT_V.tar.gz" ; then
echo "---Successfully downloaded Anope v$LAT_V---"
else
echo "---Something went wrong, can't download Anope v$LAT_V, putting container into sleep mode!---"
sleep infinity
fi
echo "---Moving configruation---"
mv ${DATA_DIR}/conf/ /tmp/
mv ${DATA_DIR}/data/ /tmp/
mv ${DATA_DIR}/logs/ /tmp/
tar -C ${DATA_DIR} --strip-components=1 --overwrite -xf ${DATA_DIR}/Anope-v$LAT_V.tar.gz
rm ${DATA_DIR}/Anope-v$LAT_V.tar.gz
echo "---Restoring configuration---"
rm -R ${DATA_DIR}/conf/ ${DATA_DIR}/data/ ${DATA_DIR}/logs/
mv /tmp/conf/ ${DATA_DIR}/
mv /tmp/data/ ${DATA_DIR}/
mv /tmp/logs/ ${DATA_DIR}/
elif [ "$CUR_V" == "$LAT_V" ]; then
echo "---Anope v$CUR_V up-to-date---"
fi
echo "---Preparing Server---"
echo "---Checking if configuration is in place---"
if [ ! -f ${DATA_DIR}/conf/services.conf ]; then
echo "---No configuration file found, copying!---"
mv ${DATA_DIR}/conf/example.conf ${DATA_DIR}/conf/services.conf
sleep 2
echo "---Setting initial values in config file!---"
sed -i "/name = \"services.host\"/c\\\tname = \"${HOST#*.}\"" ${DATA_DIR}/conf/services.conf
sed -i "/value = \"services.localhost.net\"/c\\\tvalue = \"${HOST}\"" ${DATA_DIR}/conf/services.conf
sed -i "/host = \"127.0.0.1\"/c\\\thost = \"${IP_ADDR}\"" ${DATA_DIR}/conf/services.conf
sed -i "/ssl = no/c\\\tssl = ${SSL}" ${DATA_DIR}/conf/services.conf
sed -i "/port = 7000/c\\\tport = ${PORT}" ${DATA_DIR}/conf/services.conf
sed -i "/password = \"mypassword\"/c\\\tpassword = \"${PASSWORD}\"" ${DATA_DIR}/conf/services.conf
sed -i "/name = \"services.localhost.net\"/c\\\tname = \"${LOCAL_HOSTNAME}.${HOST#*.}\"" ${DATA_DIR}/conf/services.conf
sed -i "/name = \"inspircd20\"/c\\\tname = \"${IRCD}\"" ${DATA_DIR}/conf/services.conf
sed -i "/networkname = \"LocalNet\"/c\\\tnetworkname = \"${LOCAL_HOSTNAME}.${HOST#*.}\"" ${DATA_DIR}/conf/services.conf
sed -i "/casemap = \"ascii\"/c\\\tcasemap = \"${CASEMAP}\"" ${DATA_DIR}/conf/services.conf
else
echo "---Configuration found!---"
fi
chmod -R ${DATA_PERM} ${DATA_DIR}
screen -wipe 2&>/dev/null
echo "---Starting Anope---"
cd ${DATA_DIR}
${DATA_DIR}/bin/services
sleep 3
screen -S watchdog -d -m /opt/scripts/start-watchdog.sh
tail -F "$(find ${DATA_DIR}/logs/ -name 'services*' | tail -1)"