#! /bin/bash
#
# elisp Emacs remove script for the auctex Debian package
#
# Copyright (C) 1997-2023 Davide G. M. Salvetti.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# On Debian GNU/Linux System you can find a copy of the GNU General Public
# License in "/usr/share/common-licenses/GPL".

set -e

PROGNAME='auctex/remove'

FLAVOR=${1}

undo_install () {
    echo -n "${PROGNAME}:" \
	"Removing installed files for ${FLAVOR}..."
    rm --force /usr/share/${FLAVOR}/site-lisp/auctex/CompilationLog{,.gz}
    rm --force /usr/share/${FLAVOR}/site-lisp/auctex/style/*.elc
    rm --force /usr/share/${FLAVOR}/site-lisp/auctex/style/.nosearch
    rm --force /usr/share/${FLAVOR}/site-lisp/auctex/images
    rm --force /usr/share/${FLAVOR}/site-lisp/auctex/*.elc
    rm --force /usr/share/${FLAVOR}/site-lisp/auctex/*.el
    rm --force /usr/share/${FLAVOR}/site-lisp/auctex/.nosearch
    test -d /usr/share/${FLAVOR}/site-lisp/auctex/style \
	&& rmdir --ignore-fail-on-non-empty \
	/usr/share/${FLAVOR}/site-lisp/auctex/style
    test -d /usr/share/${FLAVOR}/site-lisp/auctex \
	&& rmdir --ignore-fail-on-non-empty \
	/usr/share/${FLAVOR}/site-lisp/auctex
    echo ' done.'
    return 0
}

undo_update_auctex_elisp () {
        while pgrep -f update-auctex-elisp >/dev/null; do
	echo -n "${PROGNAME}:" \
	     "Killing $(pgrep -fc update-auctex-elisp) running" \
	     "update-auctex-elisp instance(s)..."
	pkill -f update-auctex-elisp || true
	sleep 1
	echo 'done.'
    done
    echo -n "${PROGNAME}:" \
	"Removing parsed (La)TeX macros for ${FLAVOR}..."
    rm --recursive --force /var/lib/auctex/${FLAVOR}
    echo ' done.'
    return 0
}

case "${FLAVOR}" in
    (emacs)
	undo_update_auctex_elisp
	undo_install
	;;
    (*)
	echo "${PROGNAME}:" \
	    "Ignoring unsupported Emacs flavor: ${FLAVOR}"
	;;
esac

exit 0
