diff options
| -rwxr-xr-x | rc/commands/edit | 28 |
1 files changed, 28 insertions, 0 deletions
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 |
