Knowledge Base

Preserving for the future: Shell scripts, AoC, and more

aoe2de-set-etc-hosts.sh (Source)

#!/bin/sh
# Dependencies:
#    dep-devuan: bgscripts
# TODO:
#    clean up #ageLANServer entries
scriptdir="$( dirname "$( readlink -f "${0}" )" )"
INFILE="${INFILE:-/etc/hosts}"
mkdir -p "${scriptdir}/backups"
# needs bgscripts
sudo bup "${INFILE}" "${scriptdir}/backups"
IPADDRESS="${IPADDRESS:-${1}}"
if test -z "${IPADDRESS}" ;
then
    echo "Fatal! Need \$1 or IPADDRESS. Aborted." 1>&1
    exit 1
fi
# I need to remove the loopback address for this host, only if this is the server
echo "WARNING: for server only, please modify /etc/hosts and remove 127.0.0.1-type entries. Not implemented automatically yet." 1>&2
# nice idea, but I don't want to depend on this
# This only adds the relevant api.ageofempires.com entries.
#sudo "${scriptdir}/../ageLANServer/linux/launcher/bin/config-admin" setup --game age2 --ip "${IPADDRESS}"
_resolved="$( getent hosts "${IPADDRESS}" | awk '{print $1}' )"
echo "Using resolved ip address ${_resolved}" 1>&2
for word in \
aoe-api.reliclink.com \
aoe-api.worldsedgelink.com \
api.ageofempires.com \
cdn.ageofempires.com \
pb-live-release1-api.worldsedgelink.com \
pb-live-release2-api.worldsedgelink.com \
pb-live-release3-api.worldsedgelink.com \
pb-live-release4-api.worldsedgelink.com \
pb-live-release5-api.worldsedgelink.com \
pb-live-release6-api.worldsedgelink.com \
pb-live-release7-api.worldsedgelink.com \
pb-live-release8-api.worldsedgelink.com \
pb-live-release9-api.worldsedgelink.com \
; do
    long="${word}#ageLANServer"
    # depends on bgscripts
    if test -n "${VERBOSE}" ; then
        echo "sudo updateval -v ${INFILE}" \"${_resolved} ${long}\" \"${_resolved} ${long}\"
    fi
    if test -n "${APPLY}" ; then
        sudo updateval -a "${INFILE}" "${_resolved} ${long}" "${_resolved} ${long}"
    fi
done