#!/bin/sh
#
# $Log: create_service,v $
# Revision 1.5  2023-06-23 13:02:15+05:30  Cprogrammer
# added startup/shutdown message
#
# Revision 1.4  2023-06-23 12:29:55+05:30  Cprogrammer
# added SAVE_CPU env variable
#
# Revision 1.3  2023-06-23 00:24:45+05:30  Cprogrammer
# fixed /service/lcd-daemon/variables/.options
#
# Revision 1.2  2023-06-22 23:39:06+05:30  Cprogrammer
# refactore create_service
#
# Revision 1.1  2014-09-02 22:08:00+05:30  Cprogrammer
# Initial revision
#
#
# $Id: create_service,v 1.5 2023-06-23 13:02:15+05:30 Cprogrammer Exp mbhangui $
#
prefix=/usr
LOGDIR=/var/log/svc

create_lcd_service()
{
	/bin/mkdir -p "$DESTDIR"$servicedir/lcd-daemon/log
	if [ $? -ne 0 ] ; then
		echo "mkdir "$DESTDIR"$servicedir/lcd-daemon/log failed" 1>&2
		exit 1
	fi
	conf_dir="$DESTDIR"$servicedir/lcd-daemon/variables
	/bin/mkdir -p $conf_dir
	if [ $? -ne 0 ] ; then
		echo "mkdir $conf_dir failed" 1>&2
		exit 1
	fi
	#lcd-daemon log script
	(
	echo "#!/bin/sh"
	echo "#"
	echo "# \$Id: create_service,v 1.5 2023-06-23 13:02:15+05:30 Cprogrammer Exp mbhangui $"
	echo ""
	echo "exec $prefix/bin/setuidgid qmaill \\"
	echo "  $prefix/sbin/multilog t $LOGDIR/lcd-daemon"
	) > "$DESTDIR"$servicedir/lcd-daemon/log/run
	/bin/chmod +x "$DESTDIR"$servicedir/lcd-daemon/log/run

	if [ -d /run ] ; then
		echo "/run/lcd-daemon/lcdfifo" > $conf_dir/LCDFIFO
	elif [ -d /var/run ] ; then
		echo "/var/run/lcd-daemon/lcdfifo" > $conf_dir/LCDFIFO
	else
		echo "/tmp/lcd-daemon/lcdfifo" > $conf_dir/LCDFIFO
	fi
	echo 200  > $conf_dir/SCROLL_DELAY
	echo 0666 > $conf_dir/FIFO_MODE
	echo 4    > $conf_dir/BIT_MODE
	echo 20   > $conf_dir/LCD_WIDTH
	echo 4    > $conf_dir/LCD_ROWS
	echo 1    > $conf_dir/SAVE_CPU
	echo "/usr/libexec/lcd-daemon/create_service --servicedir=$servicedir" > $conf_dir/.options
	(
	echo "#!/bin/sh"
	echo "#"
	echo "# \$Id: create_service,v 1.5 2023-06-23 13:02:15+05:30 Cprogrammer Exp mbhangui $"
	echo "#"
	echo
	echo
	echo "exec ${prefix}/bin/envdir ${servicedir}/lcd-daemon/variables \\"
	echo "  ${prefix}/sbin/lcdDaemon -i \"Display Initialized\" -s \"Display Turned Off\" 2>&1"
	) > "$DESTDIR"$servicedir/lcd-daemon/run
	/bin/chmod +x "$DESTDIR"$servicedir/lcd-daemon/run

	if [ ! -d $LOGDIR/lcd-daemon ] ; then
		/bin/mkdir -p $LOGDIR/lcd-daemon
		$chown qmaill:nofiles $LOGDIR/lcd-daemon
	fi
}

usage()
{
prog_args=""
if [ -f /usr/bin/less ] ; then
	MORE=/usr/bin/less
else
	MORE=/usr/bin/more
fi
echo "Press ENTER for options, Cntrl C to quit" 1>&2
read key
$MORE <<EOF
Usage: create_service [OPTION]
EOF
exit $1
}

################################# Main ##################################
if [ -x /bin/chown ] ; then
	chown=/bin/chown
elif [ -x /usr/sbin/chown ] ; then
	chown=/usr/sbin/chown
elif [ -x /usr/bin/chown ] ; then
	chown=/usr/bin/chown
else
	chown=/bin/chown
fi
prog_args="$0 $*"
while test $# -gt 0; do
    case "$1" in
    	-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
		;;
    	*) optarg=
		;;
    esac

    case "$1" in
    --user=*)
	user=$optarg
	;;

	--destdir=*)
	DESTDIR=$optarg
	;;

    --servicedir=*)
	servicedir=$optarg
	;;

	esac
	shift
done
if [ -z "$servicedir" ] ; then
	echo "servicedir not provided" 1>&2
	exit 1
fi
create_lcd_service
