#!/bin/sh
#run services
#/usr/sbin/telnetd
#/usr/bin/UdiskService &
timeout=40
start_time=$(date +%s)

while true; do
    current_time=$(date +%s)
    elapsed=$((current_time - start_time))

    if [ $elapsed -gt $timeout ]; then
        echo "[ERROR] Timeout waiting for rax0 interface, executing jffs2reset -yr"
        jffs2reset -yr
        exit 1
    fi

    if ifconfig | grep -q "rax0"; then
        iwpriv rax0 set SSID=Creality_Scan_Pocket_$(cat /sys/class/net/ra0/address | awk -F ":" '{print $4$5$6}' | tr a-z A-Z)

        sleep 2
        if [ -d /usr/cameraServer ] && [ -x /usr/cameraServer/run.sh ]; then
            cd /usr/cameraServer
            ./run.sh &
            CAMERA_EXIT_CODE=$?
        else
            CAMERA_EXIT_CODE=1
        fi

        if [ $CAMERA_EXIT_CODE -ne 0 ]; then
            echo "[ERROR] Failed to start cameraServer, executing jffs2reset -yr"
            jffs2reset -yr
            exit 1
        fi

        sleep 5
        /sbin/app_monitor &
        exit 0
    else
        echo "rax0 not found, waiting..."
        sleep 1
    fi
done

