#!/bin/sh

set -e

_systemctl() {
    if [ -z "$DPKG_ROOT" ] && [ -d /run/systemd/system ]; then
        systemctl "$@"
    fi
}

_update_catalog() {
    journalctl ${DPKG_ROOT:+--root="$DPKG_ROOT"} --update-catalog || true
}

_update_binfmt() {
    # If binfmt-support is installed and active do not restart
    # systemd-binfmt.service. It will unregister all currently registered
    # binary formats in ExecStop and not all packages with a binfmt-support
    # configuration ship a corresponding binfmt.d snippet yet.
    # Once this is the case, this additional safety check can be removed.
    if ! _systemctl -q is-active binfmt-support.service; then
        _systemctl try-restart systemd-binfmt.service || true
    fi
}

# Update Message Catalogs database and binfmt registrations in response to dpkg triggers
if [ "$1" = "triggered" ]; then
    shift
    for trigger in $@; do
        case $trigger in
            /usr/lib/systemd/catalog)
                _update_catalog
                ;;
            /usr/lib/binfmt.d)
                _update_binfmt
                ;;
        esac
    done
    exit 0
fi

# Enable getty and remote-fs.target by default on new installs
if [ -z "$2" ]; then
    systemctl ${DPKG_ROOT:+--root="$DPKG_ROOT"} enable getty@tty1.service || true
    systemctl ${DPKG_ROOT:+--root="$DPKG_ROOT"} enable remote-fs.target || true
fi

# Enable systemd-pstore by default on new installs and upgrades, see #952767
if dpkg --compare-versions "$2" lt "245.4-4~"; then
    systemctl ${DPKG_ROOT:+--root="$DPKG_ROOT"} enable systemd-pstore.service || true
fi

# Create /etc/machine-id
systemd-machine-id-setup ${DPKG_ROOT:+--root="$DPKG_ROOT"}

# Enable persistent journal, in auto-mode, by default on new installs and upgrades
if dpkg --compare-versions "$2" lt "244.1-2~"; then
    mkdir -p "$DPKG_ROOT/var/log/journal"
fi

# Initial update of the Message Catalogs database
_update_catalog

if dpkg --compare-versions "$2" lt-nl "245.4-4~"; then
    # systemd-pstore.service is now enabled via sysinit.target
    rm -f /etc/systemd/system/systemd-remount-fs.service.wants/systemd-pstore.service
    rmdir --ignore-fail-on-non-empty /etc/systemd/system/systemd-remount-fs.service.wants 2> /dev/null || true
fi

if dpkg --compare-versions "$2" lt-nl "245.4-5~"; then
    # Clean up removed ondemand service
    rm -f /etc/systemd/system/multi-user.target.wants/ondemand.service
fi

# Automatically added by dh_installsysusers/13.11.4
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
   systemd-sysusers ${DPKG_ROOT:+--root="$DPKG_ROOT"} basic.conf systemd-journal.conf systemd-network.conf
fi
# End automatically added section
# Automatically added by dh_installtmpfiles/13.11.4
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	if [ -x "$(command -v systemd-tmpfiles)" ]; then
		systemd-tmpfiles ${DPKG_ROOT:+--root="$DPKG_ROOT"} --create debian.conf home.conf journal-nocow.conf legacy.conf provision.conf systemd-network.conf systemd-nologin.conf systemd-pstore.conf systemd-tmp.conf systemd.conf tmp.conf var.conf x11.conf >/dev/null || true
	fi
fi
# End automatically added section
# Automatically added by dh_installdeb/13.11.4
dpkg-maintscript-helper rm_conffile /etc/dhcp/dhclient-exit-hooks.d/timesyncd 245.4-2\~ -- "$@"
dpkg-maintscript-helper rm_conffile /etc/systemd/timesyncd.conf 245.4-2\~ -- "$@"
dpkg-maintscript-helper rm_conffile /etc/pam.d/systemd-user 247\~rc2-3\~ -- "$@"
dpkg-maintscript-helper rm_conffile /etc/systemd/resolved.conf 251.3-2\~ -- "$@"
# End automatically added section


if [ -n "$2" ]; then
    _systemctl daemon-reexec || true
    # do not restart logind
    # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919509
    if dpkg --compare-versions "$2" lt-nl "246.2-2~"; then
        # the socket configuration changed
        _systemctl stop systemd-networkd.socket || true
    fi
    _systemctl try-restart systemd-networkd.service || true
    _systemctl try-restart systemd-journald.service || true
fi
