mirror of https://github.com/OpenIPC/firmware.git
60 lines
1.3 KiB
Bash
Executable File
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
|