#!/bin/sh
#
# Ignores all parameters and causes KDM to start a new session. (Works for
# xscreensaver.) Proxies to the original gdmflexiserver in case kdm isn't
# running.
#
# Copyright (C) 2007, 2008 Fabian Knittel
#
# 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 2 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, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

KDMCTL=kdmctl
GDMFLEXI_ORIG=$0.gdm-orig
KDM_PIDFILE=/var/run/kdm.pid

RUN_ORIG=0
if [ -x $GDMFLEXI_ORIG ]; then
	if [ ! -e $KDM_PIDFILE ]; then
		# There is no pid file, assume KDM is not running.
		RUN_ORIG=1
	elif [ ! kill -0 "$(cat $KDM_PIDFILE)" 2>/dev/null ]; then
		# Apparently, the KDM process is dead.
		RUN_ORIG=1
	fi
fi

if [ "$RUN_ORIG" = "1" ]; then
	# KDM isn't running, so try the original tool instead.
	exec $GDMFLEXI_ORIG "$@"
else
	exec $KDMCTL reserve
fi
