Commit e9129c3

HPCesia <me@hpcesia.com>
2026-09-30 08:00:15
zellij: fix zjd script
1 parent 55047c8
Changed files (1)
modules
dev
modules/dev/zellij/default.nix
@@ -38,19 +38,20 @@
 
             __zjd_prune() {
               [ -f "$ZJD_SESSIONS" ] || return 0
-              local sessions data
-              sessions="$(zellij list-sessions -s 2>/dev/null)"
-              data="$(grep -v '^$' "$ZJD_SESSIONS")"
+              local sessions data name path kept=""
+              sessions="$(zellij list-sessions -s 2>/dev/null || true)"
+              data="$(grep -v '^$' "$ZJD_SESSIONS" 2>/dev/null || true)"
               while IFS=' ' read -r name path; do
                 [ -n "$name" ] || continue
-                if ! grep -qx "$name" <<< "$sessions"; then
-                  data="$(grep -v "^$name " <<< "$data")"
-                elif [ ! -d "$path" ]; then
-                  zellij kill-session "$name" 2>/dev/null
-                  data="$(grep -v "^$name " <<< "$data")"
+                if [ -n "$path" ] && [ -d "$path" ] && grep -qx "$name" <<< "$sessions"; then
+                  printf -v kept '%s%s %s\n' "$kept" "$name" "$path"
+                  continue
+                fi
+                if grep -qx "$name" <<< "$sessions"; then
+                  zellij delete-session --force "$name" >/dev/null 2>&1 || true
                 fi
               done <<< "$data"
-              printf '%s\n' "$data" > "$ZJD_SESSIONS"
+              printf '%s' "$kept" > "$ZJD_SESSIONS"
             }
 
             if [ -n "''${ZELLIJ:-}" ]; then