#!/bin/sh
set -e

# TODO: implement debconf support that is maintainable without duplicating the config
#. /usr/share/debconf/confmodule

TUWUNEL_DATABASE_PATH=/var/lib/tuwunel
TUWUNEL_CONFIG_PATH=/etc/tuwunel

case "$1" in
  configure)
    # Create the `tuwunel` user if it does not exist yet.
    if ! getent passwd tuwunel > /dev/null ; then
      echo 'Adding system user for the tuwunel Matrix homeserver' 1>&2
      adduser --system --group --quiet \
        --home "$TUWUNEL_DATABASE_PATH" \
        --disabled-login \
        --shell "/usr/sbin/nologin" \
        tuwunel
    fi

    # Create the database path if it does not exist yet and fix up ownership
    # and permissions for the config.
    mkdir -v -p "$TUWUNEL_DATABASE_PATH"

    # symlink the previous location for compatibility if it does not exist yet.
    if ! test -L "/var/lib/matrix-conduit" ; then
        ln -s -v "$TUWUNEL_DATABASE_PATH" "/var/lib/matrix-conduit"
    fi
    if ! test -L "/var/lib/conduwuit" ; then
        ln -s -v "$TUWUNEL_DATABASE_PATH" "/var/lib/conduwuit"
    fi

    chown -v tuwunel:tuwunel -R "$TUWUNEL_DATABASE_PATH"
    chown -v tuwunel:tuwunel -R "$TUWUNEL_CONFIG_PATH"

    chmod -v 740 "$TUWUNEL_DATABASE_PATH"

    echo ''
    echo 'Make sure you edit the example config at /etc/tuwunel/tuwunel.toml before starting!'
    echo 'To start the server, run: systemctl start tuwunel.service'
    echo ''

    ;;
esac

#DEBHELPER#
