#!/bin/sh
store=
if [ "x$1" = "x-s" ]; then
	store=1
	shift
fi

if [ "x$1" = x -o "x$2" = x ]; then
	echo "ukeyboard-set: Missing parameters."
	exit 1
fi
dest="/usr/share/keyboards/$2.vkb"

if [ "x$1" = "x-r" -a ! -f "$dest-saved" -a ! -f "$dest-empty" ]; then
	echo "ukeyboard-set: No previous file stored."
	exit 4
fi

if [ -f "$dest" ]; then
	if [ ! -h "$dest" ]; then
		echo "ukeyboard-set: Destination $dest exists and is not a symlink."
		exit 2
	fi
	if [ "$store" != 1 -o -f "$dest-saved" ]; then
		rm "$dest"
		if [ -f "$dest" ]; then
			echo "ukeyboard-set: Cannot delete current symlink $dest."
			exit 3
		fi
	else
		mv "$dest" "$dest-saved"
	fi
elif [ "$store" = 1 ]; then
	touch "$dest-empty"
fi

if [ "x$1" = "x-r" ]; then
	if [ -f "$dest-saved" ]; then
		mv "$dest-saved" "$dest"
	else
		rm "$dest" "$dest-empty"
	fi
elif [ "$store" = 1 ]; then
	ln -s "$1" "$dest"
else
	ln -s "../ukeyboard/$1.vkb" "$dest"
fi
exit 0
