#! /bin/sh
#
# sredd     Bring up/down sredd
#
# description: Activates/Deactivates sredd to \
#              start at boot time.
#
### BEGIN INIT INFO
# Provides: $sredd
# Should-Start: sredd
# Short-Description: Bring up/down sredd
# Description: Bring up/down sredd
### END INIT INFO

options=
user=u_sredd
process_dir=/sred/usr/bin
processname=sredd
manifest_name=/usr/share/doc/arb-nfc/config_tree_tags/manifest1.xml
manifest_link_name=/usr/share/doc/arb-nfc/config_tree_tags/manifest.xml

# Set possible L1 versions as for Luxe terminal
l1_version_old=1.2
l1_version_new=3.0
DEVICE=`cat /proc/device-tree/model`
if [ "$DEVICE" == "griffin" ]
then
	# Replace with versions as for Griffin
    l1_version_old=2.0
    l1_version_new=3.1
fi

forced_sredd_version=`cat /etc/platform/settings/L2KernelsVersion 2>/dev/null`
l1_version=`cat /sys/devices/platform/nbs_rfid_as3911/version`
displayed_l1_version=$l1_version

# At first check if sredd version is set in L2KernelsVersion
if [ "$forced_sredd_version" = "1" ]; then
    displayed_l1_version=$l1_version_old
elif [ "$forced_sredd_version" = "2" ]; then
    processname=sredd2
    manifest_name=/usr/share/doc/arb-nfc/config_tree_tags/manifest2.xml
    displayed_l1_version=$l1_version_new
# If not forced via "L2KernelsVersion" choose sredd daemon based on L1 version
# displayed_version = what is read from /sys/devices/platform/nbs_rfid_as3911/version
elif ([ "$DEVICE" == "griffin" ] && [ "$l1_version" = "3.1" ]) || ([ "$DEVICE" == "phoenix" ] && [ "$l1_version" = "3.0" ]); then
    processname=sredd2
    manifest_name=/usr/share/doc/arb-nfc/config_tree_tags/manifest2.xml
fi

# Store determined L1 version to file for further usage
echo $displayed_l1_version > /etc/platform/settings/l1_version

# Create link to right manifest file
ln -sf $manifest_name $manifest_link_name

# Sanity checks.
if [ ! -x $process_dir/$processname ]; then 
    echo $"$processname isn't installed"
    exit 0
fi

RETVAL=0

. /etc/rc.d/init.d/functions 

# See how we were called.
case "$1" in
  start)
# Allow sredd process to modify threads priority. The key -e modifies RLIMIT_NICE.
	ulimit -HS -e 40
	# Save Trolltech.conf in /var/lib/p2pe (PHX-838)
	export XDG_CONFIG_HOME=/var/lib/p2pe
	start $process_dir/$processname $user $options 
	RETVAL=$?
	;;
  stop)
	# The command below will find pid of sredd and sredd2
	pid_to_stop=`pgrep  $process_dir/sredd`
	# The regexp in grep finds right part of ls -l output till first space.
	procname_to_stop=`ls -l /proc/$pid_to_stop/exe | grep -Eo "[^ ]+\$"`
	stop $procname_to_stop
	RETVAL=$?
	;;
  status)
	check_status $processname 0
	RETVAL=$?
	;;
  restart|reload|force-reload)
	cd "$CWD"
	$0 stop
# Allow sredd process to modify threads priority. The key -e modifies RLIMIT_NICE.
	ulimit -HS -e 40
	$0 start
	RETVAL=$?
	;;
  *)
	echo $"Usage: $0 {start|stop|status|restart|reload|force-reload}"
	exit 2
esac
exit $RETVAL

