summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Leferry 2 <alexherbo2@gmail.com>2019-04-21 19:55:33 +0200
committerAlex Leferry 2 <alexherbo2@gmail.com>2019-04-21 20:31:31 +0200
commite4d8397bc38b2d9bfd81ae8bfa4498fd15398a82 (patch)
tree55ed18f341f60b27f74f569bb29a42935b5e07a1
parent14f3e6bb54c244f73f936d8d2b685788d5287b13 (diff)
Handle disconnected sessions
-rwxr-xr-xrc/commands/edit28
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