34 lines
1.2 KiB
Bash
Executable File
34 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
fail() {
|
|
printf 'screen intelligence helper contract: %s\n' "$1" >&2
|
|
exit 1
|
|
}
|
|
|
|
project_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
helper="$project_root/config/dot/quickshell/scripts/screen-intelligence"
|
|
fixture_dir="$(mktemp -d)"
|
|
trap 'rm -rf "$fixture_dir"' EXIT
|
|
|
|
[[ -x "$helper" ]] || fail 'recognition helper is missing or not executable'
|
|
command -v magick >/dev/null || fail 'ImageMagick is required to build the OCR fixture'
|
|
|
|
probe="$($helper probe)"
|
|
jq -e '.tesseract == true and .zbar == true' <<<"$probe" >/dev/null \
|
|
|| fail 'Tesseract and ZBar are not ready'
|
|
|
|
fixture="$fixture_dir/panama-ocr.png"
|
|
magick -size 1600x260 xc:white \
|
|
-gravity center -fill black -font DejaVu-Sans -pointsize 72 \
|
|
-annotate 0 'PANAMA SCREEN INTELLIGENCE' "$fixture"
|
|
|
|
result="$($helper analyze-file "$fixture")"
|
|
jq -e '.ok == true' <<<"$result" >/dev/null || fail "recognition failed: $(jq -r .error <<<"$result")"
|
|
text="$(jq -r .text <<<"$result" | tr '\n' ' ' | tr -s ' ')"
|
|
[[ "$text" == *'PANAMA SCREEN INTELLIGENCE'* ]] \
|
|
|| fail "literal fixture text was not recognized: $text"
|
|
|
|
printf 'screen intelligence helper contract: PASS\n'
|