Add scripts

This commit is contained in:
Martin Pander
2023-12-15 07:59:53 +01:00
parent f2a2c2c214
commit 2cdf1bf701

163
bin/o Executable file
View 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