From fa5ce5d19c89dc97d7f6addc85688debe3b1ee2d Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Thu, 14 May 2026 12:17:44 +0200 Subject: [PATCH] Aggiunge clear.sh per pulizia interattiva di results/fdm/ Co-Authored-By: Claude Sonnet 4.6 --- clear.sh | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100755 clear.sh diff --git a/clear.sh b/clear.sh new file mode 100755 index 0000000..2c1e60a --- /dev/null +++ b/clear.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +set -euo pipefail + +RESULTS_DIR="$(dirname "$0")/results/fdm" + +if [[ ! -d "$RESULTS_DIR" ]]; then + echo "Nessuna cartella results/fdm trovata." + exit 0 +fi + +mapfile -t RUNS < <(find "$RESULTS_DIR" -mindepth 1 -maxdepth 1 -type d | sort) + +if [[ ${#RUNS[@]} -eq 0 ]]; then + echo "Nessun risultato da cancellare." + exit 0 +fi + +echo "Risultati disponibili:" +for i in "${!RUNS[@]}"; do + printf " %2d. %s\n" "$((i+1))" "$(basename "${RUNS[$i]}")" +done +echo "" +echo "a. Cancella tutti" +echo "s. Selezione manuale" +echo "0. Annulla" +echo "" +read -rp "Scelta: " MODE + +case "$MODE" in + a|A) + read -rp "Confermi la cancellazione di ${#RUNS[@]} cartelle? [s/N] " CONFIRM + if [[ "${CONFIRM,,}" == "s" ]]; then + rm -rf "${RUNS[@]}" + echo "Cancellati ${#RUNS[@]} risultati." + else + echo "Annullato." + fi + ;; + s|S) + read -rp "Numeri da cancellare (es. 1 3 5): " -a CHOICES + TO_DELETE=() + for N in "${CHOICES[@]}"; do + if [[ "$N" =~ ^[0-9]+$ ]] && (( N >= 1 && N <= ${#RUNS[@]} )); then + TO_DELETE+=("${RUNS[$((N-1))]}") + else + echo "Indice non valido: $N (ignorato)" + fi + done + if [[ ${#TO_DELETE[@]} -eq 0 ]]; then + echo "Nessuna selezione valida." + exit 0 + fi + echo "Verranno cancellati:" + for D in "${TO_DELETE[@]}"; do + echo " - $(basename "$D")" + done + read -rp "Confermi? [s/N] " CONFIRM + if [[ "${CONFIRM,,}" == "s" ]]; then + rm -rf "${TO_DELETE[@]}" + echo "Cancellati ${#TO_DELETE[@]} risultati." + else + echo "Annullato." + fi + ;; + 0|"") + echo "Annullato." + ;; + *) + echo "Scelta non valida." + exit 1 + ;; +esac