#!/bin/sh
set -e

if [ "$1" = "configure" ]; then

    NZBGET_HOME=/var/lib/nzbget
    NZBGET_USER=nzbget
    NZBGET_GROUP=nzbget
    NZBGET_NAME="NZBGet daemon user"
    
    # create user to avoid running nzbget as root
    # create group if not existing
    if ! getent group | grep -q "^$NZBGET_GROUP:"; then
        echo -n "Adding group $NZBGET_GROUP.."
        addgroup --quiet --system $NZBGET_GROUP 2>/dev/null || true
        echo "..done"
    fi
    
    # create nzbget home if not existing
    test -d $NZBGET_HOME || mkdir $NZBGET_HOME
    
    # create nzbget user if not existing
    if ! getent passwd | grep -q "^$NZBGET_USER:"; then
        echo -n "Adding system user $NZBGET_USER.."
        adduser --quiet \
                --system \
                --ingroup $NZBGET_GROUP \
                --no-create-home \
                --home $NZBGET_HOME \
                --disabled-password \
                $NZBGET_USER 2>/dev/null || true
        echo "..done"
    fi

    # adjust passwd entry
    usermod -c "$NZBGET_NAME" -d $NZBGET_HOME -g $NZBGET_GROUP $NZBGET_USER >/dev/null

    # copy default config if not exist
    if [ ! -f /var/lib/nzbget/nzbget.conf ]; then
        cp /usr/share/nzbget/nzbget.conf $NZBGET_HOME/nzbget.conf
    fi
    
    mkdir -p $NZBGET_HOME/scripts

    # adjust file and directory permissions
    if ! dpkg-statoverride --list $NZBGET_HOME >/dev/null
    then
        chown -R $NZBGET_USER:$NZBGET_GROUP $NZBGET_HOME
        chmod u=rwx,g=rxs,o= $NZBGET_HOME
    fi
    
fi

# handle systemd unit
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
    # this will only remove masks created by d-s-h on package removal.
    deb-systemd-helper unmask 'nzbget.service' >/dev/null || true

    # was-enabled defaults to true, so new installations run enable.
    if deb-systemd-helper --quiet was-enabled 'nzbget.service'; then
        # enables the unit on first installation, creates new
        # symlinks on upgrades if the unit file has changed.
        deb-systemd-helper enable 'nzbget.service' >/dev/null || true
    else
        # update the statefile to add new symlinks (if any), which need to be
        # cleaned up on purge. Also remove old symlinks.
        deb-systemd-helper update-state 'nzbget.service' >/dev/null || true
    fi

    systemctl --system daemon-reload >/dev/null || true
    if [ -n "$2" ]; then # upgrade
        ACTION=restart
    else # install
        ACTION=start
    fi
    deb-systemd-invoke $ACTION 'nzbget.service' >/dev/null || true
fi

