#!/usr/bin/sh
#
# $Id: update,v 1.12 2026-08-03 01:13:25+05:30 Cprogrammer Exp mbhangui $
#
case $1 in
	update)
	if [ -f /etc/debian_version ] ; then
		exec sudo env DEBIAN_FRONTEND=noninteractive apt update -y
	fi
	;;
	upgrade)
	if [ -d /service/audio-selector ] ; then
		sudo touch /service/audio-selector/.norestart
		ts_audio1=$(stat -c "%Y" /usr/lib/audio_selector/server.js)
		ts_node1=$(stat -c "%Y" /usr/lib/audio_selector/node_modules)
	fi
	[ -d $HOME/.audio_selector ] && cd $HOME/.audio_selector || (mkdir -p $HOME/.audio_selector && cd $HOME/.audio_selector)
	if [ -f /etc/debian_version ] ; then
		sudo env DEBIAN_FRONTEND=noninteractive apt --allow-downgrades upgrade -y
	else
		sudo dnf -y upgrade --refresh
	fi
	ret=$?
	(
	if [ $ret -eq 0 ] ; then
		echo ""
		echo "=== UPDATE COMPLETED SUCCESSFULLY ==="
		echo "STATUS=COMPLETED"
	else
		echo ""
    	echo "=== EXECUTION FAILURE ==="
		echo "STATUS=FAILED"
	fi
	) >> update_progress.log
	for i in restart update initialize install
	do
		if [ -f $HOME/.audio_selector/$i -a ! -f $HOME/.audio_selector/$i.nooverwrite ] ; then
			ts1=$(stat -c "%Y" $HOME/.audio_selector/$i)
			ts2=$(stat -c "%Y" /usr/lib/audio_selector/$i)
			if [ -n "$ts1" -a -n "$ts2" -a $ts2 -gt $ts1 ] ; then
				cmp -s $HOME/.audio_selector/$i /usr/lib/audio_selector/$i 2>/dev/null
				if [ $? -ne 0 ] ; then
					echo "Updating script $HOME/.audio_selector/$i"
					if [ "$i" = "update" ] ; then
						mv $HOME/.audio_selector/update $HOME/.audio_selector/update.bak
					fi
					cp /usr/lib/audio_selector/$i $HOME/.audio_selector/$i
				fi
			fi
		fi
	done
	if [ -d /service/audio-selector -a -f /service/audio-selector/.norestart ] ; then
		ts_audio2=$(stat -c "%Y" /usr/lib/audio_selector/server.js)
		ts_node2=$(stat -c "%Y" /usr/lib/audio_selector/node_modules)
		do_restart=0
		if [ -n "$ts_audio1" -a -n "$ts_audio2" -a $ts_audio2 -gt $ts_audio1 ] ; then
			do_restart=1
		fi
		if [ -n "$ts_node1" -a -n "$ts_node2" -a $ts_node1 -gt $ts_node2 ] ; then
			do_restart=1
		fi
		if [ $do_restart -eq 1 ] ; then
			echo "Restarting audio-selector service"
			sudo svc -r /service/audio-selector
			if [ $? -eq 0 ] ; then
				sudo /bin/rm -f /service/audio-selector/.norestart
			fi
		else
			echo "No update to audio_selector/server.js or audio_selector/node_modules detected"
			sudo /bin/rm -f /service/audio-selector/.norestart
		fi
	fi
	exit $ret
	;;
esac

#
# $Log: update,v $
# Revision 1.12  2026-08-03 01:13:25+05:30  Cprogrammer
# restart service if server.js or node_modules have been updated
#
# Revision 1.11  2026-08-02 23:56:24+05:30  Cprogrammer
# use file modification time instead of birth time
#
# Revision 1.10  2026-07-27 09:39:07+05:30  Cprogrammer
# fixed timestamp of audio_selector directory
#
# Revision 1.9  2026-07-26 18:48:13+05:30  Cprogrammer
# added install script
#
# Revision 1.8  2026-07-26 02:25:12+05:30  Cprogrammer
# use create time
#
# Revision 1.7  2026-07-26 01:17:50+05:30  Cprogrammer
# use dnf upgrade ---refresh for upgrade
#
# Revision 1.6  2026-07-25 23:58:42+05:30  Cprogrammer
# copy files only when different
#
# Revision 1.5  2026-07-25 22:00:18+05:30  Cprogrammer
# remove use of tee which caused duplicate output
#
# Revision 1.4  2026-07-25 21:11:44+05:30  Cprogrammer
# rename update script before getting updated
#
# Revision 1.3  2026-07-25 19:23:29+05:30  Cprogrammer
# restart audio-selector only when updated
#
# Revision 1.2  2026-07-25 18:40:58+05:30  Cprogrammer
# update success/failure status in update_progress.log
#
# Revision 1.1  2026-07-25 00:35:40+05:30  Cprogrammer
# Initial revision
#
#
