diff options
author | katherine <shmibs@shmibbles.me> | 2016-01-22 05:24:38 -0700 |
---|---|---|
committer | katherine <shmibs@shmibbles.me> | 2016-01-22 05:24:38 -0700 |
commit | 8254675dff09cbcf45555136f775a893fe6846a2 (patch) | |
tree | 35ed7b86d170126fa48bcdbb5b3d6ae57ef1f962 /.zprofile-dtach | |
parent | 52850cd050a543c5a00eadeec70ed385f9176d98 (diff) | |
parent | 263e556e523ca5817efa4f717d532a5cc1035a5e (diff) | |
download | dotfiles-8254675dff09cbcf45555136f775a893fe6846a2.tar.gz |
Merge branch 'master' of github.com:shmibs/dotfiles
Diffstat (limited to '.zprofile-dtach')
-rw-r--r-- | .zprofile-dtach | 57 |
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 |