-
Notifications
You must be signed in to change notification settings - Fork 1
/
.tmux.zsh
61 lines (50 loc) · 1.79 KB
/
.tmux.zsh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/zsh
SESSION="blog"
SESSIONEXISTS=$(tmux ls | grep $SESSION)
DBNAME="dev"
SERVERSTATUS=$(pg_ctl status -D "$PG_DATA_DIR" | grep 'server is running')
# Start PostgreSQL server if not running
if [ "$SERVERSTATUS" = "" ]
then
pg_ctl start -D $PG_DATA_DIR -l $PG_LOG_FILE
fi
# Create session if not existing
if [ "$SESSIONEXISTS" = "" ]
then
# Create session
tmux new-session -d -s $SESSION
# Tab 0: terminal
tmux rename-window -t 0 'terminal'
tmux send-keys -t 'terminal' "code $ROOT_DIR/repos/blog" C-m
tmux send-keys -t 'terminal' 'npm outdated -g' C-m
tmux send-keys -t 'terminal' 'pnpm outdated -r --long' C-m
tmux send-keys -t 'terminal' 'pnpm audit' C-m
tmux send-keys -t 'terminal' 'brew update && brew outdated' C-m
# Tab 1: nvim
tmux new-window -t 1 -n 'nvim'
tmux send-keys -t 'nvim' 'nvim .' C-m
tmux split-window -v
tmux send-keys -t 'nvim' 'git s' C-m
# Tab 2: localhost
tmux new-window -t 2 -n 'localhost'
tmux send-keys -t 'localhost' 'pnpm frontend:dev --host' C-m
tmux split-window -h
tmux send-keys -t 'localhost' 'pnpm backend:dev' C-m
# Tab 3: postgres
tmux new-window -t 3 -n 'psql'
tmux send-keys -t 'psql' "psql $DBNAME" C-m
# Tab 4: test
tmux new-window -t 4 -n 'test'
tmux send-keys -t 'test' 'pnpm test' C-m
# Tab 5: tsc-check
tmux new-window -t 5 -n 'tsc-check'
tmux send-keys -t 'tsc-check' "cd $ROOT_DIR/repos/blog/apps/frontend" C-m
tmux send-keys -t 'tsc-check' 'pnpm tsc -w --noEmit' C-m
tmux split-window -h
tmux send-keys -t 'tsc-check' "cd $ROOT_DIR/repos/blog/apps/frontend" C-m
tmux send-keys -t 'tsc-check' 'pnpm astro check --watch' C-m
# Attach to session
tmux attach-session -t $SESSION:0
else
echo "Session [$SESSION] already exists"
fi