From e4d8397bc38b2d9bfd81ae8bfa4498fd15398a82 Mon Sep 17 00:00:00 2001 From: Alex Leferry 2 Date: Sun, 21 Apr 2019 19:55:33 +0200 Subject: Handle disconnected sessions --- rc/commands/edit | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/rc/commands/edit b/rc/commands/edit index c0723f6..4a89653 100755 --- a/rc/commands/edit +++ b/rc/commands/edit @@ -1,5 +1,8 @@ #!/bin/sh +TMP=$(mktemp -d) +trap "rm -Rf $TMP" EXIT + # Simple and naive implementation of realpath for macOS realpath() { file=$1 @@ -13,6 +16,31 @@ realpath() { esac } +# Handle disconnected sessions +if test -n "$KAKOUNE_SESSION"; then + exist=false + valid=false + kak -l > $TMP/session-list + while read session; do + if test "$session" = "$KAKOUNE_SESSION"; then + exist=true + valid=true + break + fi + if test "$session" = "$KAKOUNE_SESSION (dead)"; then + exist=true + valid=false + break + fi + done < $TMP/session-list + if test "$exist" = true -a "$valid" = false; then + kak -clear + kak -d -s "$KAKOUNE_SESSION" + elif test "$exist" = false; then + kak -d -s "$KAKOUNE_SESSION" + fi +fi + if test "$KAKOUNE_SESSION" -a "$KAKOUNE_CLIENT"; then commands= # Ignore options -- cgit v1.2.3