#!/usr/bin/env bash
set -euo pipefail

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TARGET_DIR="${WHISPER_CPP_DIR:-$ROOT_DIR/storage/app/whisper.cpp}"
MODEL_NAME="${WHISPER_CPP_MODEL_NAME:-ggml-small.bin}"

if command -v apt-get >/dev/null 2>&1; then
  sudo apt-get update -y
  sudo apt-get install -y build-essential git cmake ffmpeg
fi

if [ ! -d "$TARGET_DIR" ]; then
  git clone https://github.com/ggerganov/whisper.cpp "$TARGET_DIR"
fi

cd "$TARGET_DIR"
git pull --rebase

make -j"$(nproc)"

mkdir -p models
if [ ! -f "models/$MODEL_NAME" ]; then
  if [ -f "models/download-ggml-model.sh" ]; then
    bash models/download-ggml-model.sh small
  else
    echo "Script de download nao encontrado em models/."
    exit 1
  fi
fi

echo "Whisper.cpp instalado em: $TARGET_DIR"
echo "Binario: $TARGET_DIR/main"
echo "Modelo: $TARGET_DIR/models/$MODEL_NAME"
