#!/bin/bash

shopt -s nullglob

showhelp () {
	cat << EOF
Usage: xsane-install-gimp-plugin <mode> <gimpversion>
Mode can be:
--install|-i:	install the plugin in all available GIMP versions
--uninstall|-u:	uninstall the plugin in all available GIMP versions
--help|-h:	show this message
EOF
}

install () {
	version="$1"
	for gimptool in /usr/bin/gimp-config* /usr/bin/gimptool-*; do
		GIMPPLUGINDIR="`"$gimptool" --gimpplugindir`"
		GIMPVERSION="`"$gimptool" --version`"
		if [ "$version" == "" -o "${GIMPVERSION#${version}}" != "$GIMPVERSION" ]; then
			RELPATH="`echo $GIMPPLUGINDIR | awk 'BEGIN { FS="/"; i = 1} {while (i < NF) { printf("../"); i = i + 1} }'`"
			if [ ! -s "$GIMPPLUGINDIR/plug-ins/xsane" ]; then
				ln -s "$RELPATH/bin/xsane-gimp" "$GIMPPLUGINDIR/plug-ins/xsane"
			fi
		fi
	done
}

uninstall () {
	version="$1"
	for gimptool in /usr/bin/gimp-config* /usr/bin/gimptool-*; do
		GIMPPLUGINDIR="`"$gimptool" --gimpplugindir`"
		GIMPVERSION="`"$gimptool" --version`"
		if [ "$version" == "" -o "${GIMPVERSION#${version}}" != "$GIMPVERSION" ]; then
			RELPATH="`echo $GIMPPLUGINDIR | awk 'BEGIN { FS="/"; i = 1} {while (i < NF) { printf("../"); i = i + 1} }'`"
			if [ -L "$GIMPPLUGINDIR/plug-ins/xsane" ]; then
				rm -f "$GIMPPLUGINDIR/plug-ins/xsane"
			fi
		fi
	done
}

usageval=1
case "$1" in
--install|-i)
	install "$2"
	;;
--uninstall|-u)
	uninstall "$2"
	;;
*)
	if [ "$1" = "--help" -o "$1" = "-h" ]; then
		usageval=0
	fi
	showhelp
	exit $usageval
	;;
esac
