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
+38 -14
View File
@@ -1,21 +1,26 @@
#!/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"
if [[ ! -d "$DIR" ]]; then
echo "Nessuna cartella $DIR trovata."
return
fi fi
mapfile -t RUNS < <(find "$RESULTS_DIR" -mindepth 1 -maxdepth 1 -type d | sort) mapfile -t RUNS < <(find "$DIR" -mindepth 1 -maxdepth 1 -type d | sort)
if [[ ${#RUNS[@]} -eq 0 ]]; then if [[ ${#RUNS[@]} -eq 0 ]]; then
echo "Nessun risultato da cancellare." echo "Nessun risultato $LABEL da cancellare."
exit 0 return
fi fi
echo "Risultati disponibili:" echo ""
echo "Risultati $LABEL disponibili:"
for i in "${!RUNS[@]}"; do 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
@@ -24,14 +29,14 @@ 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 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