#!/bin/sh # Handle slider events . /lib/functions.sh DELAY=5 LOCK=/var/run/slider.lock # --- Run Update (asynchronous) --- run_handler() { # Only start if not already active if ! mkdir "$LOCK" 2>/dev/null; then logger "update-script already running" exit 0 fi # Read processing script from /etc/config/system config_load system config_get handler slider handler logger "handler-script: $handler" logger "wait $DELAY seconds for all events" sleep $DELAY eval $handler # Execute handler rm -fr "$LOCK" } # --- Main Program ------------------ logger "Process event '$ACTION' for $BUTTON" # Ignore WPS button if [ "$BUTTON" = "wps" ]; then exit 0 fi # Update button file to match event if [ "$ACTION" = "pressed" ]; then echo "1" > "/var/run/$BUTTON" else echo "0" > "/var/run/$BUTTON" fi # Run asynchronously run_handler & # (do not block event handling)