Commit e9129c3
Changed files (1)
modules
dev
zellij
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