#!/bin/sh

wait_for_iio() {
    retries=20
    while [ "$retries" -gt 0 ]; do
        find /sys/bus/iio/devices -name name -exec grep -ql "^ad9361-phy$" {} + 2>/dev/null && return 0
        retries=$((retries - 1))
        sleep 1
    done
    return 1
}

case "$1" in
    start)
        if grep -q dma_test_skip /proc/cmdline; then
            echo "Skipping maia-httpd start (dma_test_skip on cmdline)"
            exit 0
        fi
        printf "Starting maia-httpd: "
        if [ -f /usr/bin/maia-httpd.xz ]; then
            xz -d /usr/bin/maia-httpd.xz
        fi
        if ! wait_for_iio; then
            echo "FAIL (ad9361-phy IIO device not found)"
            exit 1
        fi
        cd /root || exit
        start-stop-daemon -S -b -q -m -p /var/run/maia-httpd.pid -x /usr/bin/maia-httpd -- --listen 0.0.0.0:80 --ssl-cert /mnt/jffs2/maia-httpd.crt --ssl-key /mnt/jffs2/maia-httpd.key --ca-cert /mnt/jffs2/maia-sdr-ca.crt
        cd - > /dev/null || exit
        ;;
    stop)
        printf "Stopping maia-httpd: "
        if start-stop-daemon -K -q -p /var/run/maia-httpd.pid 2>/dev/null; then
            echo "OK"
        else
            echo "FAIL"
        fi
        ;;
    restart|reload)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $?
