#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/powerlaunch
RUN=/usr/sbin/powerlaunch-run
NAME=powerlaunch
DESC="Powerlaunch"
PIDFILE=/var/run/$NAME.pid
INITFILE=/etc/init.d/$NAME
DSMETOOL=/usr/sbin/dsmetool
DSMETOOL_PARAMETERS="-G users -U user -n -1 -f "
STOP_PARAMETERS="-k "
# HOME for GTK theming...
HOME=/home/`cat /etc/default/autologin | cut -d"=" -f2`

CURRENT_THEME_DIR=$HOME/.osso
CURRENT_THEME_FILE=$CURRENT_THEME_DIR/current-gtk-theme
export DEFAULTMBTHEME=$(cat $CURRENT_THEME_FILE | sed -e "s/include\ \"\/usr\/share\/themes\///" -e 's/\/gtk\-2\.0\/gtkrc\"//'|tr -d '\n')
export DEFAULTGTKTHEME=$DEFAULTMBTHEME
export MBTHEME=$DEFAULTMBTHEME
export GTKTHEME=$DEFAULTGTKTHEME
export GTK2_RC_FILES=$CURRENT_THEME_FILE
export DISPLAY=:0

# abort if no executable exists
test -x $DAEMON || exit 0

# default values that can be overridden in /etc/default/powerlaunch
SYSTEMUI_STOP=true
SYSTEMUI_START=true
POWERLAUNCH_OPTS=

if [ -r /etc/default/zzpowerlaunch ]; then
    . /etc/default/zzpowerlaunch
fi

powerlaunch_start()
{
	if ! pidof $DAEMON > /dev/null; then
		printf "Starting $DESC: $NAME"
		daemon --user=`ls /home`.users $RUN $POWERLAUNCH_OPTS
		renice -1 -p `pidof $DAEMON`
		printf ".\n"
	fi
}

case "$1" in
start)
    if [ "$START_POWERLAUNCH" != "true" ]; then
          echo "Not starting powerlaunch: disabled by /etc/default/powerlaunch."
          exit 0
    fi
    if [ "$SYSTEMUI_STOP" == "true" ]; then
      if pidof systemui > /dev/null; then
          printf "systemui is running...stopping\n"
          if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
              invoke-rc.d osso-systemui stop || exit $?
          else
             /etc/init.d/osso-systemui stop || exit $?
          fi
      fi
    fi

    powerlaunch_start
	;;

stop)
	printf "Stopping: $DESC: $NAME"
	killall $DAEMON
    sleep 2

	if pidof $DAEMON > /dev/null; then
		killall -9 "$DAEMON $POWERLAUNCH_OPTS"
		sleep 1
	fi								
	printf ".\n"

    if [ "$SYSTEMUI_START" == "true" ]; then
      if ! pidof systemui > /dev/null; then
        if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
            invoke-rc.d osso-systemui start || exit $?
        else
            /etc/init.d/osso-systemui start || exit $?
        fi
      fi
    fi
	;;

restart|force-reload)
	printf "Restarting $DESC: $NAME"
    killall $DAEMON
	sleep 2
	if pidof $DAEMON > /dev/null; then
	  killall -9 $DAEMON
	  sleep 1
	fi
	    
    powerlaunch_start
	printf ".\n"
	;;

*)
	printf "Usage: $INITFILE {start|stop|restart|force-reload}\n" >&2
	exit 1
	;;
esac

exit 0
