firmware/general/package/onvif-simple-server/files/S96onvifserver

60 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
ONVIF_CONFIG="/etc/onvif.conf"
HTTPD_CONFIG="/etc/httpd_onvif.conf"
WWW_PATH="/var/www"
ONVIF_PORT=$(awk -F= '/^port=/{print $2}' ${ONVIF_CONFIG})
DAEMON="httpd"
PIDFILE="/var/run/httpd_onvif.pid"
DAEMON_ARGS="-p $ONVIF_PORT -h $WWW_PATH -c $HTTPD_CONFIG -f"
start() {
echo -n "Starting ONVIF HTTPD server: "
fw_version="OpenIPC $(grep "OPENIPC_VERSION" /etc/os-release | cut -d= -f2 | tr -d '"')"
network_interface=$(ip route | awk '/default/ {print $5}' | head -n1)
network_macaddr=$(cat /sys/class/net/${network_interface}/address | sed 's/://g')
soc=$(ipcinfo --chip-name)
sed -i "s/^firmware_ver=.*/firmware_ver=$fw_version/" $ONVIF_CONFIG
sed -i "s/^hardware_id=.*/hardware_id=$soc/" $ONVIF_CONFIG
sed -i "s/^serial_num=.*/serial_num=$network_macaddr/" $ONVIF_CONFIG
sed -i "s/^ifs=.*/ifs=$network_interface/" $ONVIF_CONFIG
echo -e "A:*\n/cgi-bin*:*\n" > $HTTPD_CONFIG
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "$DAEMON" -- $DAEMON_ARGS
if [ $? -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
}
stop() {
echo -n "Stopping ONVIF HTTPD server: "
start-stop-daemon -K -q -p "$PIDFILE"
if [ $? -eq 0 ]; then
rm -f "$PIDFILE"
echo "OK"
else
echo "FAIL"
fi
}
case "$1" in
start|stop)
$1
;;
restart)
stop
sleep 3
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac