blob: 395b84a609833f5e66c0bb12cb09ba70087b78e9 [file] [log] [blame]
#!/bin/sh
# Monitor $ACSFILE for changes, checking every $SLEEPTIME
# seconds. If $ACSFILE goes $timeout seconds without
# changing, remove $LEDFILE.
# SLEEPTIME is relatively short so that we'll notice
# when the ACS comes back into contact, and stop
# blinking the LED quickly. People tend to get
# impatient and start rebooting things if we don't.
ACSFILE=/tmp/cwmp/acsconnected
LEDFILE=/tmp/gpio/ledcontrol/acsconnected
TIMEOUTFILE=/tmp/cwmp/acs_timeout
SLEEPTIME=30
last_contact=$(ls -l $ACSFILE 2>&1)
out_of_contact=31536000
while [ 1 ]; do
sleep $SLEEPTIME
timeout=7200
if [ -f $TIMEOUTFILE ]; then
# Useful for system test, set a short timeout.
# Need to read on every loop iteration, test
# changes it while running then puts it back.
timeout=$(cat $TIMEOUTFILE)
fi
# This is a string comparison. We just want to know
# if the file has changed since the last iteration.
contact=$(ls -l $ACSFILE 2>&1)
if [ "$contact" != "$last_contact" ]; then
out_of_contact=0
else
out_of_contact=$((out_of_contact+SLEEPTIME))
fi
last_contact="$contact"
if [ "$out_of_contact" -lt "$timeout" ]; then
echo >$LEDFILE
else
rm -f $LEDFILE
fi
done