#!/bin/sh
# m-bluetooth - control de Bluetooth real vía bluez (bluetoothctl). Igual
# que m-wifi: en QEMU no hay adaptador Bluetooth (el kernel sí soporta el
# stack, pero no hay hardware ni siquiera emulado que enumerar), así que
# "list"/"scan" no encontrarán nada. En hardware real con adaptador BT lo
# detecta el propio bluetoothd y esto controla dispositivos de verdad.
set -eu

case "${1:-list}" in
    list)
        # bluetoothctl escribe sus propios avisos por la salida normal, así
        # que sin adaptador imprimía "No default controller available" y quien
        # lo leyera lo tomaba por un dispositivo: el Centro de Control llegó a
        # enseñar esa frase, en inglés, como si fuera un aparato emparejado.
        # Aquí sólo salen líneas de dispositivo de verdad ("Device <MAC> ...").
        bluetoothctl devices 2>/dev/null | grep '^Device ' || true
        ;;
    estado)
        # "sin-adaptador" | "apagado" | "listo". Un estado que se pueda mirar
        # sin tener que interpretar el texto de otra herramienta.
        if ! bluetoothctl show 2>/dev/null | grep -q '^Controller '; then
            echo "sin-adaptador"
        elif bluetoothctl show 2>/dev/null | grep -q 'Powered: no'; then
            echo "apagado"
        else
            echo "listo"
        fi
        ;;
    scan)
        timeout "${2:-10}" bluetoothctl scan on
        ;;
    connect)
        [ -z "${2:-}" ] && { echo "Uso: m-bluetooth connect <MAC>"; exit 1; }
        bluetoothctl connect "$2"
        ;;
    pair)
        [ -z "${2:-}" ] && { echo "Uso: m-bluetooth pair <MAC>"; exit 1; }
        bluetoothctl pair "$2"
        ;;
    power)
        [ -z "${2:-}" ] && { echo "Uso: m-bluetooth power <on|off>"; exit 1; }
        bluetoothctl power "$2"
        ;;
    *)
        echo "Uso: m-bluetooth [list|estado|scan [seg]|connect <MAC>|pair <MAC>|power <on|off>]"
        exit 1
        ;;
esac
