#!/bin/sh # Only invalid input/help/dry-run reach the real CLI: never open hardware. set -eu cli=$1 check() { expected=$1 shift actual=0 "$cli" "$@" >/dev/null 2>&1 || actual=$? if [ "$actual" -ne "$expected" ]; then echo "Expected $expected got $actual for $*" >&2 exit 1 fi } check 0 --help check 2 check 2 unknown check 2 set '#GG0000' check 2 set '#fff' check 2 set check 2 set '#000000' extra check 2 brightness -1 check 2 brightness 101 check 2 brightness 99999999999999999999999999 check 2 auto extra check 0 --dry-run set '#B4BEFE' check 0 --dry-run set '#FF0000' check 0 --dry-run set '#00FF00' check 0 --dry-run set '#0000FF' check 0 --dry-run brightness 60 check 0 --dry-run brightness 0 check 0 --dry-run brightness 100 check 0 --dry-run off check 0 --dry-run auto check 0 --dry-run probe check 0 --dry-run status check 2 --dry-run set bad