#!/bin/bash
# servguiweb - lanzador
# uso: servguiweb [proyectil|estadistica|/ruta/a/mi/app]

BASE=/usr/local/share/servguiweb

show_help() {
    echo "uso: servguiweb [proyectil|estadistica|/ruta/app]"
    echo ""
    echo "  servguiweb proyectil    ejemplo de simulacion de proyectil"
    echo "  servguiweb estadistica  ejemplo de estadistica descriptiva"
    echo "  servguiweb /mi/app      aplicacion propia"
    echo ""
    echo "El directorio debe contener formulario.html y algun motor:"
    echo "  calcular.sce (Scilab), calcular.m (Octave), calcular.py (Python),"
    echo "  calcular.pl (Perl), calcular.js (Node), calcular (C compilado),"
    echo "  calcular.sh (Bash), calcular.ps1 (PowerShell)"
    echo "El motor inicial se elige con MOTOR=python servguiweb /mi/app"
    echo "servidor.py se copia automaticamente si no esta."
}

case "${1:-}" in
    ""|-h|--help)
        show_help
        exit 0
        ;;
    proyectil)
        DIR=$(mktemp -d)
        cp $BASE/proyectil/formulario.html $DIR/formulario.html
        cp $BASE/proyectil/calcular.sce    $DIR/calcular.sce
        cp $BASE/servidor.py               $DIR/servidor.py
        ;;
    estadistica)
        DIR=$(mktemp -d)
        cp $BASE/estadistica/formulario.html $DIR/formulario.html
        cp $BASE/estadistica/calcular.sce    $DIR/calcular.sce
        cp $BASE/servidor.py                 $DIR/servidor.py
        ;;
    /*)
        DIR="$1"
        if [ ! -f "$DIR/formulario.html" ]; then
            echo "Error: no se encontro $DIR/formulario.html"
            exit 1
        fi
        if ! ls "$DIR"/calcular.* >/dev/null 2>&1 && [ ! -f "$DIR/calcular" ]; then
            echo "Error: no se encontro ningun motor en $DIR"
            echo "  (calcular.sce, calcular.m, calcular.py, calcular.pl,"
            echo "   calcular.js, calcular, calcular.sh o calcular.ps1)"
            exit 1
        fi
        if [ ! -f "$DIR/servidor.py" ]; then
            cp $BASE/servidor.py "$DIR/servidor.py"
            echo "copiado servidor.py a $DIR/"
        fi
        ;;
    *)
        echo "Error: argumento desconocido: $1"
        show_help
        exit 1
        ;;
esac

echo "servguiweb: directorio $DIR"
echo "servguiweb: abriendo http://localhost:8080"
cd "$DIR"
python3 servidor.py
