#!/bin/sh # prerm script for binjr # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `remove' # * `upgrade' # * `failed-upgrade' # * `remove' `in-favour' # * `deconfigure' `in-favour' # `removing' # # for details, see https://www.debian.org/doc/debian-policy/ or # the debian-policy package # # Remove $1 desktop file from the list of default handlers for $2 mime type # in $3 file dumping output to stdout. # _filter_out_default_mime_handler () { local defaults_list="$3" local desktop_file="$1" local mime_type="$2" awk -f- "$defaults_list" < "$tmpfile1" local v local update= for mime in "$@"; do _filter_out_default_mime_handler "$desktop_file" "$mime" "$tmpfile1" > "$tmpfile2" v="$tmpfile2" tmpfile2="$tmpfile1" tmpfile1="$v" if ! diff -q "$tmpfile1" "$tmpfile2" > /dev/null; then update=yes trace Remove $desktop_file default handler for $mime mime type from $defaults_list file fi done if [ -n "$update" ]; then cat "$tmpfile1" > "$defaults_list" trace "$defaults_list" file updated fi rm -f "$tmpfile1" "$tmpfile2" } # # Remove $1 desktop file from the list of default handlers for $@ mime types # in all known system defaults lists. # uninstall_default_mime_handler () { for f in /usr/share/applications/defaults.list /usr/local/share/applications/defaults.list; do _uninstall_default_mime_handler "$f" "$@" done } trace () { echo "$@" } case "$1" in remove|upgrade|deconfigure) xdg-desktop-menu uninstall /opt/binjr/lib/binjr-binjr.desktop || echo "Desktop menu entry could not be uninstalled" >&2 xdg-mime uninstall /opt/binjr/lib/binjr-binjr-MimeInfo.xml || echo "x-binjr Mime type could not be uninstalled" >&2 uninstall_default_mime_handler binjr-binjr.desktop application/x-binjr xdg-icon-resource uninstall application-x-binjr --size 128 || echo "Icon resource could not be uninstalled" >&2 rm -f /usr/bin/binjr ;; failed-upgrade) ;; *) echo "prerm called with unknown argument \`$1'" >&2 exit 1 ;; esac exit 0