#!/bin/sh
set -e

# Configurazione
SERVER_URL="https://fuss.bz.it/utility/fuss-speechtotext/models/whisper-large-v3-turbo/"
MODEL_DIR="/opt/fuss-speechtotext/models"
# Lista dei file necessari
FILES="model.bin config.json vocabulary.json tokenizer.json preprocessor_config.json"

case "$1" in
    configure)
        echo "Configurazione FUSS SpeechToText..."
        mkdir -p "$MODEL_DIR"
        cd "$MODEL_DIR"

        
        echo "Verifica integrità modelli..."
        wget -q "$SERVER_URL/checksums.md5" -O "checksums.md5.new" || true

        for FILE in $FILES; do
            # Controlliamo se il file esiste ed è integro usando md5sum
            # Se il file non passa il test (o non esiste), lo scarichiamo/riprendiamo
            if [ ! -f "$FILE" ] || ! grep "$FILE" checksums.md5.new | md5sum -c >/dev/null 2>&1; then
                echo "File $FILE mancante o incompleto. Inizio download..."                
                wget -c "$SERVER_URL/$FILE" -O "$FILE" --show-progress
                
                # Verifica finale dopo il download
                if ! grep "$FILE" checksums.md5.new | md5sum -c >/dev/null 2>&1; then
                    echo "ERRORE: Il file $FILE scaricato è corrotto. Riprova l'installazione."
                    exit 1
                fi
            else
                echo "✔ $FILE è già presente e integro."
            fi
        done
        
        mv checksums.md5.new checksums.md5
        
        # Sistema permessi e cache
        chown -R root:root "$MODEL_DIR"
        chmod 644 "$MODEL_DIR"/*
        update-desktop-database -q || true
        gtk-update-icon-cache -f -t /usr/share/pixmaps >/dev/null 2>&1 || true
        echo "Installazione completata con successo."
    ;;
esac
exit 0
