Add scripts
This commit is contained in:
163
bin/o
Executable file
163
bin/o
Executable file
@ -0,0 +1,163 @@
|
||||
#!/usr/bin/bash
|
||||
# set -o nounset
|
||||
# set -e
|
||||
|
||||
declare -A sessions=(
|
||||
["misc"]="~/"
|
||||
["cloud"]="~/projects/"
|
||||
["edge"]="~/projects/fabmetrics"
|
||||
# ["qiv"]="~/dev/projects/qiv/code/java/server"
|
||||
# ["buchi"]="~/dev/projects/P17.02/Code/"
|
||||
# ["bosch"]="~/dev/projects/bosch/Code/port/fredwick/source"
|
||||
)
|
||||
|
||||
vimSessionsDir="~/.config/nvim/obsessions"
|
||||
|
||||
function setup() {
|
||||
local session attach
|
||||
session=$1
|
||||
attach=$2
|
||||
|
||||
if tmux has-session -t $1>/dev/null 2>/dev/null; then
|
||||
if [[ $attach == true ]]; then
|
||||
attachSession $session
|
||||
fi
|
||||
else
|
||||
makeSession $session
|
||||
if [[ $attach == true ]]; then
|
||||
attachSession $session
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function makeSession() {
|
||||
local session dir oldTMUX
|
||||
session=$1
|
||||
dir="${sessions[$session]}"
|
||||
|
||||
if [[ $insideSession == true ]]; then
|
||||
oldTMUX="$TMUX"
|
||||
TMUX=""
|
||||
fi
|
||||
|
||||
case "$session" in
|
||||
misc)
|
||||
tmux new-session -s $session -n bash -d >/dev/null 2>/dev/null
|
||||
tmux send-keys -t $session:0 "cd $dir" C-m
|
||||
tmux send-keys -t $session:0 'clear' C-m
|
||||
tmux selectp -t $session:0
|
||||
tmux splitw -h -p 50
|
||||
tmux selectp -l
|
||||
|
||||
tmux new-window -t $session:1 -n bash
|
||||
tmux send-keys -t $session:1 "cd $dir" C-m
|
||||
tmux send-keys -t $session:1 'clear' C-m
|
||||
;;
|
||||
|
||||
edge)
|
||||
tmux new-session -s $session -n proc -d >/dev/null 2>/dev/null
|
||||
tmux send-keys -t $session:0 "cd $dir/code/processor" C-m
|
||||
tmux send-keys -t $session:0 'clear' C-m
|
||||
tmux send-keys -t $session:0 'git st' C-m
|
||||
|
||||
tmux new-window -t $session:1 -n ansible
|
||||
tmux send-keys -t $session:1 "cd $dir/code/edge-device-setup/ansible" C-m
|
||||
tmux send-keys -t $session:1 'clear' C-m
|
||||
|
||||
tmux new-window -t $session:2 -n edge
|
||||
tmux send-keys -t $session:2 "cd $dir" C-m
|
||||
tmux send-keys -t $session:2 'clear' C-m
|
||||
|
||||
tmux new-window -t $session:3 -n deploy
|
||||
tmux send-keys -t $session:3 "cd $dir/files/deployment" C-m
|
||||
tmux send-keys -t $session:3 'clear' C-m
|
||||
|
||||
tmux new-window -t $session:4 -n shell
|
||||
tmux send-keys -t $session:4 "cd $dir" C-m
|
||||
tmux send-keys -t $session:4 'clear' C-m
|
||||
;;
|
||||
|
||||
cloud)
|
||||
tmux new-session -s $session -n infra -d >/dev/null 2>/dev/null
|
||||
tmux send-keys -t $session:0 "cd $dir/cloudExo/repos/infrastructure" C-m
|
||||
tmux send-keys -t $session:0 'clear' C-m
|
||||
|
||||
tmux new-window -t $session:1 -n plat
|
||||
tmux send-keys -t $session:1 "cd $dir/cloudExo/repos/platform" C-m
|
||||
tmux send-keys -t $session:1 'clear' C-m
|
||||
|
||||
tmux new-window -t $session:2 -n helm
|
||||
tmux send-keys -t $session:2 "cd $dir/cloudExo/repos/infrastructure/charts" C-m
|
||||
tmux send-keys -t $session:2 'clear' C-m
|
||||
|
||||
tmux new-window -t $session:3 -n files
|
||||
tmux send-keys -t $session:3 "cd $dir/cloudExo/files/" C-m
|
||||
tmux send-keys -t $session:3 'clear' C-m
|
||||
|
||||
tmux new-window -t $session:4 -n shell
|
||||
tmux send-keys -t $session:4 "cd $dir/cloudExo" C-m
|
||||
tmux send-keys -t $session:4 'clear' C-m
|
||||
|
||||
tmux new-window -t $session:5 -n azCode
|
||||
tmux send-keys -t $session:5 "cd $dir/cloudAz/code/" C-m
|
||||
tmux send-keys -t $session:5 'clear' C-m
|
||||
;;
|
||||
|
||||
esac
|
||||
tmux select-window -t $session:0
|
||||
|
||||
if [[ $insideSession == true ]]; then
|
||||
TMUX="$oldTMUX"
|
||||
fi
|
||||
}
|
||||
|
||||
function attachSession() {
|
||||
if [[ $insideSession == true ]]; then
|
||||
tmux switch-client -t $1
|
||||
else
|
||||
tmux attach -t $1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
arg=$1
|
||||
|
||||
if [[ ! -z ${TMUX:-} ]]; then
|
||||
insideSession=true
|
||||
fi
|
||||
|
||||
case "$arg" in
|
||||
all)
|
||||
for session in "${!sessions[@]}"; do
|
||||
setup $session false
|
||||
done
|
||||
attachSession misc
|
||||
;;
|
||||
|
||||
kill)
|
||||
if [ $# -eq 2 ]; then
|
||||
tmux kill-session -t $2
|
||||
else
|
||||
tmux kill-server && echo "killed all sessions"
|
||||
fi
|
||||
;;
|
||||
|
||||
params)
|
||||
parameters="${!sessions[@]} all kill"
|
||||
echo "$parameters"
|
||||
;;
|
||||
|
||||
*)
|
||||
if [ ! -z "${sessions[$arg]:-}" ]; then
|
||||
setup $arg true
|
||||
else
|
||||
echo "no such session"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
else
|
||||
setup misc true
|
||||
fi
|
||||
Reference in New Issue
Block a user