1 files changed,
14 insertions(+),
8 deletions(-)
Author:
Oleksandr Smirnov
olexsmir@gmail.com
Committed at:
2026-07-10 18:13:31 +0300
Authored at:
2026-06-07 20:42:59 +0300
Change ID:
uwswsrryksoloupuktvxuyxqnytronry
Parent:
66fb03a
M
prune.sh
··· 3 3 source "$CURRENT_DIR/scripts/helpers.sh" 4 4 5 5 set -euo pipefail 6 +cd "$(get_opt_dir)" 6 7 7 8 DAYS=7 8 9 9 -DIR="$(get_opt_dir)" 10 -cd "$DIR" 10 +CUTOFF=$(date -d "$DAYS days ago" +%Y%m%dT%H%M%S) 11 11 12 -CUTOFF=$(date -d "$DAYS days ago" +%Y%m%dT%H%M%S) 12 + 13 +RED='\033[0;31m' 14 +MAGENTA='\033[0;35m' 15 +YELLOW='\033[0;33m' 16 +RESET='\033[0m' 13 17 14 18 # Build set of active session names (those with a _last symlink) 15 19 declare -A ACTIVE ··· 19 23 done 20 24 21 25 DELETED=0 26 +ORPHANS=0 22 27 FIXED=0 23 28 24 29 for f in *_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]T[0-9][0-9][0-9][0-9][0-9][0-9]; do ··· 32 37 if [ "$f" = "$target" ]; then continue; fi # always keep the _last target 33 38 if [[ "$ts" < "$CUTOFF" ]]; then 34 39 rm "$f" 35 - echo "pruned: $f" 40 + echo -e "${RED}pruned:${RESET} $f" 36 41 DELETED=$((DELETED + 1)) 37 42 fi 38 43 else 39 44 # Orphaned session: delete everything 40 45 rm "$f" 41 - echo "pruned (orphan): $f" 46 + echo -e "${MAGENTA}pruned (orphan):${RESET} $f" 42 47 DELETED=$((DELETED + 1)) 48 + ORPHANS=$((ORPHANS + 1)) 43 49 fi 44 50 done 45 51 ··· 48 54 [ -L "$l" ] || continue 49 55 [ -e "$l" ] && continue 50 56 rm "$l" 51 - echo "cleaned: $l (broken symlink)" 57 + echo -e "${YELLOW}cleaned:${RESET} $l (broken symlink)" 52 58 FIXED=$((FIXED + 1)) 53 59 done 54 60 55 61 # Clean dangling global last symlink 56 62 if [ -L "last" ] && [ ! -e "last" ]; then 57 63 rm "last" 58 - echo "cleaned: last (broken symlink)" 64 + echo -e "${YELLOW}cleaned:${RESET} last (broken symlink)" 59 65 FIXED=$((FIXED + 1)) 60 66 fi 61 67 62 -echo "Done. $DELETED session files pruned, $FIXED broken symlinks cleaned." 68 +echo "Done. $DELETED session files pruned, $ORPHANS orphan sessions deleted, $FIXED broken symlinks cleaned."