#!/bin/sh set -e if [ -d /run/systemd/system ]; then systemctl --system daemon-reload > /dev/null || true fi if [ "$1" = "remove" ]; then if [ -x "/usr/bin/deb-systemd-helper" ]; then deb-systemd-helper mask evcc.service > /dev/null || true fi fi if [ "$1" = "purge" ]; then if [ -x "/usr/bin/deb-systemd-helper" ]; then deb-systemd-helper purge evcc.service > /dev/null || true deb-systemd-helper unmask evcc.service > /dev/null || true fi # Remove the user choices config file and deregister it from ucfr if [ -x /usr/bin/ucfr ]; then ucfr --purge evcc /etc/evcc-userchoices.sh || true fi rm -f /etc/evcc-userchoices.sh fi # if interactive: call `/usr/bin/evcc checkconfig` and check the return code (newer version) # if return code is 0, do nothing # else: Ask user if he wants to keep the old version (working) or the new version (not working) # Remember the choice with /tmp/.evccrollback and fail new-postrm failed-upgrade old-version new-version to initiate dpkg's rollback if [ "$1" = "upgrade" ] && [ -t 0 ]; then if ! EVCC_DATABASE_DSN=/var/lib/evcc/evcc.db /usr/bin/evcc checkconfig > /dev/null; then echo "--------------------------------------------------------------------------------" echo "ERROR: your configuration is not compatible with the new version:" /usr/bin/evcc checkconfig --log error || true echo "Please consult the release notes: https://github.com/evcc-io/evcc/releases" echo "--------------------------------------------------------------------------------" while true; do echo "Do you want to keep your old (working) version? [Y/n]: " read choice case "$choice" in n* | N* | "") echo "We will keep the new version. Your configuration stays untouched!" break ;; y* | Y*) echo "The old version will be restored. Your configuration stays untouched! Following errors are intended:" touch /tmp/.evccrollback exit 1 break ;; *) ;; esac done fi fi # if upgrade goal fails, new-postrm failed-upgrade old-version new-version is called. It should fail to initiate rollback if [ "$1" = "failed-upgrade" ]; then if [ -f "/tmp/.evccrollback" ]; then rm "/tmp/.evccrollback" exit 1 fi fi