diff --git a/bin/tat b/bin/tat new file mode 100755 index 0000000..901f252 --- /dev/null +++ b/bin/tat @@ -0,0 +1,31 @@ +#!/bin/sh +# +# Attach or create tmux session named the same as current directory. + +path_name="$(basename "$PWD" | tr . -)" +session_name=${1-$path_name} + +not_in_tmux() { + [ -z "$TMUX" ] +} + +session_exists() { + tmux has-session -t "=$session_name" +} + +create_detached_session() { + (TMUX='' tmux new-session -Ad -s "$session_name") +} + +create_if_needed_and_attach() { + if not_in_tmux; then + tmux new-session -As "$session_name" + else + if ! session_exists; then + create_detached_session + fi + tmux switch-client -t "$session_name" + fi +} + +create_if_needed_and_attach