aboutsummaryrefslogtreecommitdiffstats
path: root/.zprofile-dtach
diff options
context:
space:
mode:
authorkatherine <shmibs@shmibbles.me>2016-01-22 05:24:38 -0700
committerkatherine <shmibs@shmibbles.me>2016-01-22 05:24:38 -0700
commit8254675dff09cbcf45555136f775a893fe6846a2 (patch)
tree35ed7b86d170126fa48bcdbb5b3d6ae57ef1f962 /.zprofile-dtach
parent52850cd050a543c5a00eadeec70ed385f9176d98 (diff)
parent263e556e523ca5817efa4f717d532a5cc1035a5e (diff)
downloaddotfiles-8254675dff09cbcf45555136f775a893fe6846a2.tar.gz
Merge branch 'master' of github.com:shmibs/dotfiles
Diffstat (limited to '.zprofile-dtach')
-rw-r--r--.zprofile-dtach57
1 files changed, 57 insertions, 0 deletions
diff --git a/.zprofile-dtach b/.zprofile-dtach
new file mode 100644
index 0000000..6f57ef7
--- /dev/null
+++ b/.zprofile-dtach
@@ -0,0 +1,57 @@
+if [[ -z "${DTACH_SUB}" ]]; then
+{
+ setopt NULL_GLOB
+
+ while true; do
+ set -- /tmp/dtach*
+ if [[ "$#" -gt 0 ]]; then
+ # session exists, so show the menu
+ {
+ while true; do
+ set -- /tmp/dtach*
+ if [[ "$#" -eq 0 ]]; then
+ # logout if all sessions terminated
+ clear
+ logout
+ fi
+
+ # list sessions
+ set -- /tmp/dtach*
+ if [[ "$#" -gt 0 ]]; then
+ ls /tmp/dtach* | sed 's/\/tmp\/dtach-//g'
+ fi
+
+ echo -n "> "
+ read -A args
+ case "${args[1]}" in
+ q)
+ break;
+ ;;
+
+ *)
+ if [[ "${args[1]}" != "q" ]]; then
+ DTACH_SUB=true dtach -A "/tmp/dtach-${args[1]}" -z zsh
+ clear
+ fi
+ ;;
+ esac
+
+ done
+ }
+
+ clear
+ logout
+ else
+ # create the main session
+ DTACH_SUB=true dtach -A /tmp/dtach-1 -z zsh
+ clear
+ set -- /tmp/dtach*
+ if [[ "$#" -eq 0 ]]; then
+ # logout if all sessions terminated
+ clear
+ logout
+ fi
+ fi
+ done
+}
+fi