DoorControl-CGI/doorcontrol-main.cgi

56 lines
1.0 KiB
Bash
Executable File

#! /bin/bash
echo "Content-type: application/json"
echo ""
echo ""
# Initialize
PASSWD_FILE="/usr/local/www/cgi-bin/doorcontrol-cgi/passwd"
QUERY_STRING=$1
LOCKFILE="./doorcontrol-main.lock"
. parse_query_string.sh
#
# Exit if instance already running
if [ -e "$LOCKFILE" ]; then
exit 1
else
touch "$LOCKFILE"
fi
# Check password
read apiKey <"${PASSWD_FILE}"
if [ "${param[apiKey]}" != "${apiKey}" ]; then
echo '{"message": "Invalidcredentials"}'
rm "$LOCKFILE"
exit 1
fi
LABEL_FILE=$(grep -l pcf8574a /sys/class/gpio/*/*label)
BASE_FILE="$(dirname $LABEL_FILE)/base"
BASE=$(cat $BASE_FILE)
for (( i=0; i<=7; i=i+1 )); do
PIN[$i]=$(($BASE+$i))
done
if [ ! -e "/sys/class/gpio/gpio${PIN[7]}/value" ]; then
echo "${PIN[7]}" > /sys/class/gpio/export
fi
#echo "Waiting ..."
sleep ${param[delay]}
echo '{"message": "Unlocked"}'
#echo "out" > /sys/class/gpio/gpio${PIN[7]}/direction
#echo "0" > /sys/class/gpio/gpio${PIN[7]}/value
#echo "UNLOCKED"
#sleep 2
#echo "1" > /sys/class/gpio/gpio${PIN[7]}/value
#echo "<p>Unlocked</p>"
rm "$LOCKFILE"