all repos

tmux-stare @ e1f53d7

session manager, but my session manager
1 files changed, 14 insertions(+), 8 deletions(-)
prettify prune.sh
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."