"""Point d'entrée principal du service audioin."""

import sys
import argparse
from pathlib import Path

from .service import create_service
from .audio_capture import list_audio_devices


def main() -> int:
    """Point d'entrée principal."""
    parser = argparse.ArgumentParser(description="Service Audio-in pour Skull Pi")
    parser.add_argument(
        "--log-file",
        default="/opt/Skull/logs/audioin.log",
        help="Fichier de log (défaut: /opt/Skull/logs/audioin.log)",
    )
    parser.add_argument(
        "--list-devices",
        action="store_true",
        help="Liste les devices audio disponibles et quitte",
    )
    parser.add_argument("--verbose", "-v", action="store_true", help="Mode verbose")

    args = parser.parse_args()

    # Liste des devices audio
    if args.list_devices:
        list_audio_devices()
        return 0

    # Création du répertoire de logs
    log_path = Path(args.log_file)
    log_path.parent.mkdir(parents=True, exist_ok=True)

    # Démarrage service
    service = create_service(args.log_file)

    try:
        return service.run()
    except KeyboardInterrupt:
        print("\nArrêt demandé par l'utilisateur")
        return 0
    except Exception as e:
        print(f"Erreur fatale: {e}", file=sys.stderr)
        return 1


if __name__ == "__main__":
    sys.exit(main())
