#!/usr/bin/env bash
# profil-a11y.sh -- terapkan profil aksesibilitas pada berkas setelan latihan
# Pemakaian: bash profil-a11y.sh <terapkan|baca> <profil> [berkas-setelan]
# Profil   : penglihatan | motorik | pendengaran
# Format berkas setelan: satu "kunci=nilai" per baris (nilai true/false).
# Tanpa argumen: demo singkat di direktori sementara.

skrip=$(realpath "$0")

if [ $# -eq 0 ]; then
    tmp=$(mktemp -d)
    printf 'screen-reader-enabled=false\nscreen-magnifier-enabled=false\nhigh-contrast=false\nsticky-keys=false\nslow-keys=false\nvisual-alerts=false\n' > "$tmp/setelan-a11y.txt"
    (
        cd "$tmp" || exit 1
        bash "$skrip" terapkan penglihatan setelan-a11y.txt
        bash "$skrip" terapkan motorik setelan-a11y.txt
        bash "$skrip" baca - setelan-a11y.txt
    )
    rm -rf "$tmp"
    echo "demo selesai di direktori sementara"
    exit 0
fi

perintah=$1
profil=${2:-penglihatan}
berkas=${3:-setelan-a11y.txt}

tombol_profil() {
    case "$1" in
        penglihatan) echo "screen-reader-enabled screen-magnifier-enabled" ;;
        motorik)     echo "sticky-keys slow-keys" ;;
        pendengaran) echo "visual-alerts" ;;
        *)           echo "" ;;
    esac
}

if [ ! -f "$berkas" ]; then
    echo "gagal: berkas setelan $berkas tidak ditemukan"
    exit 0
fi

case "$perintah" in
    terapkan)
        tombol=$(tombol_profil "$profil")
        if [ -z "$tombol" ]; then
            echo "profil tidak dikenal: $profil"
            exit 0
        fi
        for kunci in $tombol; do
            sed -i "s/^$kunci=.*/$kunci=true/" "$berkas"
            echo "aktif: $kunci"
        done
        ;;
    baca)
        echo "== setelan saat ini ($berkas) =="
        grep '=true$' "$berkas" | cut -d= -f1 | sed 's/^/  - /'
        ;;
    *)
        echo "perintah tidak dikenal: $perintah"
        echo "pilihan: terapkan | baca"
        ;;
esac
