#!/bin/bash
# OpenCode backlight helper: write a single integer to a backlight brightness sysfs path.
# Invoked via pkexec when unprivileged write fails. Only path and value from our code.
# Usage: opencode-write-backlight <brightness_file_path> <value>
# Path must be under /sys/class/backlight; value must be a non-negative integer.

set -e

PATH_ARG="$1"
VALUE_ARG="$2"

if [ -z "$PATH_ARG" ] || [ -z "$VALUE_ARG" ]; then
    echo "Usage: opencode-write-backlight <brightness_file_path> <value>" >&2
    exit 1
fi

# Restrict path to under /sys/class/backlight
case "$PATH_ARG" in
    /sys/class/backlight/*) ;;
    *) echo "Error: Path must be under /sys/class/backlight" >&2; exit 1 ;;
esac

if [ ! -f "$PATH_ARG" ]; then
    echo "Error: Path is not a file: $PATH_ARG" >&2
    exit 1
fi

if ! [[ "$VALUE_ARG" =~ ^[0-9]+$ ]]; then
    echo "Error: Value must be a non-negative integer" >&2
    exit 1
fi

echo "$VALUE_ARG" > "$PATH_ARG"
exit 0
