#!/bin/sh -e

# shellcheck disable=SC1091
. /usr/share/debconf/confmodule

CONFIGFILE_SERVERNAME="/etc/matrix-synapse/conf.d/server_name.yaml"
CONFIGFILE_REPORTSTATS="/etc/matrix-synapse/conf.d/report_stats.yaml"
USER="matrix-synapse"

case "$1" in
  configure|reconfigure)

    # generate template config files if they don't exist
    mkdir -p "/etc/matrix-synapse/conf.d/"
    if [ ! -e "$CONFIGFILE_SERVERNAME" ]; then
        cat > "$CONFIGFILE_SERVERNAME" <<EOF
# This file is autogenerated, and will be recreated on upgrade if it is deleted.
# Any changes you make will be preserved.

# The domain name of the server, with optional explicit port.
# This is used by remote servers to connect to this server,
# e.g. matrix.org, localhost:8080, etc.
# This is also the last part of your UserID.
#
server_name: ''
EOF
    fi

    if [ ! -e "$CONFIGFILE_REPORTSTATS" ]; then
        cat > "$CONFIGFILE_REPORTSTATS" <<EOF
# This file is autogenerated, and will be recreated on upgrade if it is deleted.
# Any changes you make will be preserved.

# Whether to report homeserver usage statistics.
report_stats: false
EOF
    fi

    # update the config files according to whatever is in the debconf database
    /opt/venvs/matrix-synapse/lib/manage_debconf.pl update

    if ! getent passwd $USER >/dev/null; then
      adduser --quiet --system --group --no-create-home --home /var/lib/matrix-synapse $USER
    fi

    for DIR in /var/lib/matrix-synapse /var/log/matrix-synapse /etc/matrix-synapse; do
      if ! dpkg-statoverride --list --quiet $DIR >/dev/null; then
        dpkg-statoverride --force-statoverride-add --quiet --update --add $USER "$(id -gn $USER)" 0755 $DIR
      fi
    done

    ;;
esac

#DEBHELPER#

exit 0
