#!/bin/sh

# Script to toggle camera 

ENABLED=/home/user/.cameraenabled
DISABLED=/home/user/.cameradisabled
Xscript=/etc/X11/Xsession.post/17camera-ui
Xscriptenabled="#!/bin/sh\n\n/usr/sbin/dsmetool -t /usr/bin/camera-ui"
Xscriptdisabled="#!/bin/sh\n\n#/usr/sbin/dsmetool -t /usr/bin/camera-ui"

become_root()
{
	if [ `id -u` != 0 ] ; then
		#if not already root, call itself as root - thanks, fanoush
		echo "Not root. Calling sudo..."
		echo
		exec sudo $0 $*
		exit $?
	fi
}

disable_camera()
{
	if [ -f $DISABLED ]
		then
			echo "Camera already disabled, exiting..."
			exit 0
		else
			become_root $*
			echo "Disabling camera."
			mv /usr/bin/camera-ui /usr/bin/camera-ui.disabled
			cp /usr/bin/cameradisabledwindow /usr/bin/camera-ui
			chmod +x /usr/bin/camera-ui
			echo -e $Xscriptdisabled > $Xscript
			dsmetool -k /usr/bin/camera-ui
			#killall camera-ui > /dev/null
			touch $DISABLED && chown user:users $DISABLED
			if [ -f $ENABLED ]
				then
					rm $ENABLED
			fi
	fi
}

enable_camera()
{
	if [ -f $ENABLED ]
		then
			echo "Camera already enabled, exiting..."
			exit 0
		else
			become_root $*
			echo "Enabling camera."
			rm /usr/bin/camera-ui
			mv /usr/bin/camera-ui.disabled /usr/bin/camera-ui
			chmod +x /usr/bin/camera-ui
			echo -e $Xscriptenabled > $Xscript
			dsmetool -t /usr/bin/camera-ui
			touch $ENABLED && chown user:users $ENABLED
			if [ -f $DISABLED ]
				then
					rm $DISABLED
			fi
	fi
}

status()
{
	if [ -f $DISABLED ]
		then
			echo "Camera disabled."
	fi

	if [ -f $ENABLED ]
		then
			echo "Camera enabled."
	fi
}

help()
{
	echo "Camera toggle script"
	echo ""
	echo "Usage: togglecamera [OPTIONS]

Options:
    --enable, -e		Enable camera.
    --disable, -d		Disable camera.
    --status, -s		Check status.
    --help, -h			Show this help message.
"
}

argv0=$1
case "$argv0" in
	-e|--enable|enable)
		enable_camera $*
		;;

	-d|--disable|disable)
		disable_camera $*
		;;

	-s|--status|status)
		status $*
		;;

	*)
		help $0
		;;
esac

