#!/bin/bash

DPKG_OLD_SUFFIX=".dpkg-old"


# Example:
# IGNORE_LIST="\
# bd9f841cf1dfc3d110d88f1f06fa5b60  /etc/xivo/asterisk/xivo_ring.conf.dpkg-old
# "
IGNORE_LIST=""

list_modified_conffiles() {
    for conffile in $(sort /var/lib/dpkg/info/xivo-config.conffiles) /etc/systemd/system.conf; do
        conffile_old="${conffile}${DPKG_OLD_SUFFIX}"
        if [ -f "$conffile_old" ]; then
            if is_conffile_old_ignored "$conffile_old"; then
                rm "$conffile_old"
            else
                echo "$conffile"
            fi
        fi
    done
}

is_conffile_old_ignored() {
    local conffile_old="$1"
    grep -qF "$(md5sum $conffile_old)" <<< "$IGNORE_LIST"
}

display_warning_msg() {
    local modified_files="$1"
    cat <<-EOF
	WARNING: The following configuration files were overwritten during the upgrade:

	$modified_files

	To finish the upgrade, you must merge the new version with the old
	one. For example:

	   vimdiff FILENAME FILENAME${DPKG_OLD_SUFFIX}

	Once this is done, remove the old files and run "wazo-service restart".
	EOF
}

modified_conffiles=$(list_modified_conffiles)
if [ -n "$modified_conffiles" ]; then
    display_warning_msg "$modified_conffiles"
fi
