#!/bin/sh

echo "dintel-backlight-aux starting" >&2
if command -v wjt >/dev/null 2>&1; then
    echo "wjt found, using wjt interface" >&2
    OUT="$(wjt -p 'intel-backlight (0-100):')"
    echo "Raw wjt output: '$OUT'" >&2
    # wjt returns empty string for 0, so treat empty as min
    [ -z "$OUT" ] && OUT="min" && echo "Empty output treated as min" >&2
    # wjt outputs one value per line as user moves slider, get only the last line
    OUT="$(echo "$OUT" | tail -1)"
    echo "Extracted last value: '$OUT'" >&2
    # If no numeric value found, treat as min
    [ -z "$OUT" ] && OUT="min" && echo "No numeric value found, using min" >&2
    # Ensure wjt output is a valid number or command
    echo "wjt output after cleanup: '$OUT'" >&2
    case "$OUT" in
        ''|min|max|up|down|off) ;; # valid commands
        *[!0-9]*) echo "Invalid output: '$OUT'" >&2; exit 1 ;; # exit if not a number or valid command
    esac
    echo "Calling intel-backlight with: '$OUT'" >&2
else
    SELECTOR="$(which dmenu)"
    OUT="$(echo "up\ndown\nmin\nmax\noff" | "$SELECTOR" -p 'intel-backlight command:')"
    [ -z "$OUT" ] && exit 0 # exit if no selection from dmenu
fi
"$HOME"/src/sh/intel-backlight "$OUT"
