clear.sh: aggiunge menu per ripulire risultati PINN oltre a FDM

Estrae la logica interattiva in cleanup_dir() e aggiunge un menu di primo
livello con le opzioni: FDM, PINN, Entrambi, Annulla.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-14 15:50:42 +02:00
parent e868c47190
commit 1237a57290
+49 -25
View File
@@ -1,37 +1,42 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
RESULTS_DIR="$(dirname "$0")/results/fdm" BASE_DIR="$(dirname "$0")"
if [[ ! -d "$RESULTS_DIR" ]]; then cleanup_dir() {
echo "Nessuna cartella results/fdm trovata." local LABEL="$1"
exit 0 local DIR="$2"
fi
mapfile -t RUNS < <(find "$RESULTS_DIR" -mindepth 1 -maxdepth 1 -type d | sort) if [[ ! -d "$DIR" ]]; then
echo "Nessuna cartella $DIR trovata."
return
fi
if [[ ${#RUNS[@]} -eq 0 ]]; then mapfile -t RUNS < <(find "$DIR" -mindepth 1 -maxdepth 1 -type d | sort)
echo "Nessun risultato da cancellare."
exit 0
fi
echo "Risultati disponibili:" if [[ ${#RUNS[@]} -eq 0 ]]; then
for i in "${!RUNS[@]}"; do echo "Nessun risultato $LABEL da cancellare."
return
fi
echo ""
echo "Risultati $LABEL disponibili:"
for i in "${!RUNS[@]}"; do
printf " %2d. %s\n" "$((i+1))" "$(basename "${RUNS[$i]}")" printf " %2d. %s\n" "$((i+1))" "$(basename "${RUNS[$i]}")"
done done
echo "" echo ""
echo "a. Cancella tutti" echo "a. Cancella tutti"
echo "s. Selezione manuale" echo "s. Selezione manuale"
echo "0. Annulla" echo "0. Annulla"
echo "" echo ""
read -rp "Scelta: " MODE read -rp "Scelta [$LABEL]: " MODE
case "$MODE" in case "$MODE" in
a|A) a|A)
read -rp "Confermi la cancellazione di ${#RUNS[@]} cartelle? [s/N] " CONFIRM read -rp "Confermi la cancellazione di ${#RUNS[@]} cartelle $LABEL? [s/N] " CONFIRM
if [[ "${CONFIRM,,}" == "s" ]]; then if [[ "${CONFIRM,,}" == "s" ]]; then
rm -rf "${RUNS[@]}" rm -rf "${RUNS[@]}"
echo "Cancellati ${#RUNS[@]} risultati." echo "Cancellati ${#RUNS[@]} risultati $LABEL."
else else
echo "Annullato." echo "Annullato."
fi fi
@@ -48,7 +53,7 @@ case "$MODE" in
done done
if [[ ${#TO_DELETE[@]} -eq 0 ]]; then if [[ ${#TO_DELETE[@]} -eq 0 ]]; then
echo "Nessuna selezione valida." echo "Nessuna selezione valida."
exit 0 return
fi fi
echo "Verranno cancellati:" echo "Verranno cancellati:"
for D in "${TO_DELETE[@]}"; do for D in "${TO_DELETE[@]}"; do
@@ -57,7 +62,7 @@ case "$MODE" in
read -rp "Confermi? [s/N] " CONFIRM read -rp "Confermi? [s/N] " CONFIRM
if [[ "${CONFIRM,,}" == "s" ]]; then if [[ "${CONFIRM,,}" == "s" ]]; then
rm -rf "${TO_DELETE[@]}" rm -rf "${TO_DELETE[@]}"
echo "Cancellati ${#TO_DELETE[@]} risultati." echo "Cancellati ${#TO_DELETE[@]} risultati $LABEL."
else else
echo "Annullato." echo "Annullato."
fi fi
@@ -67,6 +72,25 @@ case "$MODE" in
;; ;;
*) *)
echo "Scelta non valida." echo "Scelta non valida."
exit 1
;; ;;
esac
}
echo "Cosa vuoi ripulire?"
echo " 1. Risultati FDM (results/fdm/)"
echo " 2. Risultati PINN (results/pinn/)"
echo " 3. Entrambi"
echo " 0. Annulla"
echo ""
read -rp "Scelta: " CHOICE
case "$CHOICE" in
1) cleanup_dir "FDM" "$BASE_DIR/results/fdm" ;;
2) cleanup_dir "PINN" "$BASE_DIR/results/pinn" ;;
3)
cleanup_dir "FDM" "$BASE_DIR/results/fdm"
cleanup_dir "PINN" "$BASE_DIR/results/pinn"
;;
0|"") echo "Annullato." ;;
*) echo "Scelta non valida." ; exit 1 ;;
esac esac