#!/bin/sh
set -e

# On removal, stop all instances while the helper script still exists, so each
# server is sent "exit" and saves its world. (Without the script, systemd would
# just kill them.) Upgrades leave running servers alone.
case "$1" in
    remove|deconfigure)
        if [ -d /run/systemd/system ]; then
            systemctl stop terractld.service || true
            units=$(systemctl list-units --plain --no-legend --all 'terraria@*.service' | awk '{print $1}')
            if [ -n "$units" ]; then
                echo "Stopping Terraria instances: $units"
                # Unquoted on purpose: each unit name must be a separate argument
                # shellcheck disable=SC2086
                systemctl stop $units || true
            fi
        fi
        ;;
esac

exit 0
