#!/bin/sh -e

case "$1" in
  configure)
    if ! getent passwd backone >/dev/null 2>&1; then
      useradd --system --user-group --home-dir /var/lib/backone --shell /usr/sbin/nologin --no-create-home backone
    fi
    mkdir -p /var/lib/backone/addons.d
    chown -R backone:backone /var/lib/backone 2>/dev/null || true
    if [ -x /usr/lib/backone/addons/updater/backone-updater ]; then
      /usr/lib/backone/addons/updater/backone-updater migrate --core || true
      /usr/lib/backone/addons/updater/backone-updater rebuild-manifest || true
    fi
    if [ -x /usr/lib/backone/addons/updater/merge-local-conf.sh ]; then
      BACKONE_HOME=/var/lib/backone /usr/lib/backone/addons/updater/merge-local-conf.sh '{"settings":{"enableWebServer":true}}' || true
    fi
    # Drop legacy manual-install unit that runs /opt/backone instead of /usr/sbin/backone
    if [ -f /etc/systemd/system/backone.service ] && grep -q '/opt/backone' /etc/systemd/system/backone.service 2>/dev/null; then
      echo "Removing stale /etc/systemd/system/backone.service (was pointing at /opt/backone)"
      rm -f /etc/systemd/system/backone.service
      systemctl daemon-reload 2>/dev/null || true
    fi
    # backone must run as root; older packages shipped User=backone which prevents startup
    if [ -f /usr/lib/systemd/system/backone.service ] && grep -q '^User=backone' /usr/lib/systemd/system/backone.service 2>/dev/null; then
      sed -i '/^User=backone$/d; /^Group=backone$/d; /^StateDirectory=backone$/d' /usr/lib/systemd/system/backone.service
      systemctl daemon-reload 2>/dev/null || true
    fi
    if [ -x /usr/lib/backone/addons/updater/sync-authtoken.sh ]; then
      /usr/lib/backone/addons/updater/sync-authtoken.sh || true
    elif [ -x /usr/share/backone/sync-authtoken.sh ]; then
      /usr/share/backone/sync-authtoken.sh || true
    fi
    ;;
esac

#DEBHELPER#

exit 0
