diff options
| author | Alex Leferry 2 <alexherbo2@gmail.com> | 2019-04-21 19:55:33 +0200 |
|---|---|---|
| committer | Alex Leferry 2 <alexherbo2@gmail.com> | 2019-04-21 20:31:31 +0200 |
| commit | e4d8397bc38b2d9bfd81ae8bfa4498fd15398a82 (patch) | |
| tree | 55ed18f341f60b27f74f569bb29a42935b5e07a1 | |
| parent | 14f3e6bb54c244f73f936d8d2b685788d5287b13 (diff) | |
Handle disconnected sessions
| -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 |
