]> git.immae.eu Git - perso/Immae/Config/Ansible.git/blobdiff - roles/contexts/fretlink/files/scripts/fl_tmux_dev
Move bash functions to separate scripts
[perso/Immae/Config/Ansible.git] / roles / contexts / fretlink / files / scripts / fl_tmux_dev
diff --git a/roles/contexts/fretlink/files/scripts/fl_tmux_dev b/roles/contexts/fretlink/files/scripts/fl_tmux_dev
new file mode 100644 (file)
index 0000000..ca89e27
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+type="${1:-bash}"
+if [ -n "$TMUX" ]; then
+  m=switch-client
+else
+  m=attach-session
+fi
+
+case "$type" in
+  "bash") start_dir="$HOME";;
+  "remote") start_dir="$HOME";;
+  "puppet") start_dir="/etc/puppetlabs/code"
+esac
+
+if tmux has-session -t "$type" 2>/dev/null; then
+  tmux $m -t "$type"
+else
+  if [ "$type" = "remote" ]; then
+    tmux new-session -d -c $start_dir -s "$type" mosh immae.eu \; \
+        $m -t "$type"
+  elif [ -n "$start_dir" ]; then
+    tmux new-session -d -c $start_dir -s "$type" \; \
+        $m -t "$type" \; \
+        new-window -c $start_dir
+  elif [ -d "$HOME/workdir/$type" ]; then
+    tmux new-session -d -c "$HOME/workdir/$type" -s "$type" \; \
+        $m -t "$type" \; \
+        send-keys "../start" C-m \; \
+        rename-window "running" \; \
+        new-window -c "$HOME/workdir/$type"
+  else
+    echo "Unknown session" >&2
+    exit 1
+  fi
+fi