Skip to content

Commit ee2020e

Browse files
committed
Better tmux
1 parent 1afc097 commit ee2020e

2 files changed

Lines changed: 39 additions & 16 deletions

File tree

scratch/shawn/scripts/smurfhammer.sh

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ usage() {
1818
(default: /data/smurf_startup_cfg/smurf_startup.cfg)
1919
-i <script> pysmurf init script (relative to $pysmurf/pysmurf/)
2020
-t Run thermal test after setup
21+
-e Open startup config in editor (default: emacs, or $EDITOR)
2122
-h Show this help message
2223
2324
Description:
@@ -52,11 +53,14 @@ EOF
5253
exit 0
5354
}
5455

55-
while getopts ":hic:t" opt; do
56+
while getopts ":hei:c:t" opt; do
5657
case ${opt} in
5758
h )
5859
usage
5960
;;
61+
e )
62+
edit_config=true
63+
;;
6064
i )
6165
# make sure this file exists
6266
if [ ! -f $pysmurf/pysmurf/$OPTARG ]; then
@@ -88,6 +92,11 @@ while getopts ":hic:t" opt; do
8892
done
8993
shift $((OPTIND -1))
9094

95+
if [ "$edit_config" = true ]; then
96+
${EDITOR:-emacs} "$startup_cfg"
97+
exit 0
98+
fi
99+
91100
# can't hammer without a cfg ; exit if one doesn't exist
92101
if [ ! -f "$startup_cfg" ]; then
93102
echo "$startup_cfg doesn't exist, unable to smurfhammer." 1>&2
@@ -189,17 +198,37 @@ sleep 0.1
189198
info "Creating new ${BOLD}${tmux_session_name}${RESET} tmux session"
190199
tmux new-session -d -s ${tmux_session_name}
191200

201+
# Style the tmux session — Smurf blue theme
202+
tmux set -t ${tmux_session_name} status on
203+
tmux set -t ${tmux_session_name} status-position bottom
204+
tmux set -t ${tmux_session_name} status-interval 5
205+
tmux set -t ${tmux_session_name} status-style "bg=#0d1117,fg=#58a6ff"
206+
tmux set -t ${tmux_session_name} status-left-length 30
207+
tmux set -t ${tmux_session_name} status-right-length 60
208+
tmux set -t ${tmux_session_name} status-left "#[bg=#1f6feb,fg=#c9d1d9,bold] ░ ${tmux_session_name} #[bg=#0d1117,fg=#1f6feb]▓▒░"
209+
tmux set -t ${tmux_session_name} status-right "#[fg=#264d73]│ #[fg=#79c0ff]%H:%M #[fg=#264d73]│ #[fg=#388bfd]%m-%d "
210+
tmux set -t ${tmux_session_name} window-status-format "#[fg=#264d73] #I:#W "
211+
tmux set -t ${tmux_session_name} window-status-current-format "#[bg=#161b22,fg=#58a6ff,bold] #I:#W "
212+
tmux set -t ${tmux_session_name} window-status-separator ""
213+
tmux set -t ${tmux_session_name} pane-border-style "fg=#1b3a5c"
214+
tmux set -t ${tmux_session_name} pane-active-border-style "fg=#388bfd"
215+
tmux set -t ${tmux_session_name} message-style "bg=#0d1117,fg=#79c0ff"
216+
tmux set -t ${tmux_session_name} mode-style "bg=#1b3a5c,fg=#79c0ff"
217+
tmux rename-window -t ${tmux_session_name}:0 "main"
218+
192219
if [[ "$enable_tmux_logging" = true ]]; then
193220
mkdir -vp /data/smurf_data/tmux_logs >/dev/null 2>&1
194221
tmux set -g @logging-path "/data/smurf_data/tmux_logs"
195222
fi
196223

197-
# Stop pyrogue servers only for configured slots
224+
# Stop server and client containers for configured slots
198225
for ((i=0; i<${#slots[@]}; ++i)); do
199226
slot=${slots[i]}
200227
pyrogue=${pyrogues[i]}
201-
if docker ps --filter "name=^smurf_server_s${slot}$" --format '{{.ID}}' | grep -q .; then
202-
stop_pyrogue $slot $pyrogue
228+
if docker ps -a --filter "name=^smurf_server_s${slot}$" --format '{{.ID}}' | grep -q . || \
229+
docker ps -a --filter "name=^pysmurf_s${slot}$" --format '{{.ID}}' | grep -q .; then
230+
info "Stopping containers for slot ${BOLD}${slot}${RESET}"
231+
docker rm -f "smurf_server_s${slot}" "pysmurf_s${slot}" 2>/dev/null
203232
else
204233
dim "No running docker for slot ${slot}, skipping"
205234
fi
@@ -208,8 +237,10 @@ done
208237
for ((i=0; i<${#rfsoc_slots[@]}; ++i)); do
209238
slot=${rfsoc_slots[i]}
210239
pyrogue=${rfsoc_pyrogues[i]}
211-
if docker ps --filter "name=^smurf_server_s${slot}$" --format '{{.ID}}' | grep -q .; then
212-
stop_pyrogue $slot $pyrogue
240+
if docker ps -a --filter "name=^smurf_server_s${slot}$" --format '{{.ID}}' | grep -q . || \
241+
docker ps -a --filter "name=^pysmurf_s${slot}$" --format '{{.ID}}' | grep -q .; then
242+
info "Stopping containers for slot ${BOLD}${slot}${RESET}"
243+
docker rm -f "smurf_server_s${slot}" "pysmurf_s${slot}" 2>/dev/null
213244
else
214245
dim "No running docker for slot ${slot}, skipping"
215246
fi

scratch/shawn/scripts/smurfhammerfunctions.sh

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -212,11 +212,11 @@ start_slot_tmux_and_pyrogue() {
212212
pyrogue=$2
213213

214214
tmux new-window -t ${tmux_session_name}:${slot_number}
215-
tmux rename-window -t ${tmux_session_name}:${slot_number} smurf_slot${slot_number}
215+
tmux rename-window -t ${tmux_session_name}:${slot_number} "s${slot_number}"
216216

217217
tmux send-keys -t ${tmux_session_name}:${slot_number} 'cd '${pyrogue} C-m
218218
tmux send-keys -t ${tmux_session_name}:${slot_number} \
219-
'. .env; extra=""; [ -c /dev/datadev_0 ] && [ -c /dev/datadev_1 ] && extra="-f docker-compose.pcie.yml"; slot='${slot_number}' docker-compose -f docker-compose.yml $extra up -d smurf_server_s'${slot_number}'; sleep 5; docker logs smurf_server_s'${slot_number}' -f' C-m
219+
'. .env; extra=""; [ -c /dev/datadev_0 ] && [ -c /dev/datadev_1 ] && extra="-f docker-compose.pcie.yml"; slot='${slot_number}' extra_opts="" docker-compose -f docker-compose.yml $extra up -d smurf_server_s'${slot_number}'; sleep 5; docker logs smurf_server_s'${slot_number}' -f' C-m
220220
}
221221

222222
is_slot_pyrogue_up() {
@@ -275,19 +275,11 @@ start_slot_pysmurf() {
275275
slot_number=$1
276276
pysmurf_cfg=$2
277277

278-
docker rm -f "pysmurf_s${slot_number}" 2>/dev/null
279-
280278
tmux split-window -v -t ${tmux_session_name}:${slot_number}
281279
tmux send-keys -t ${tmux_session_name}:${slot_number} 'cd '${pysmurf} C-m
282280
tmux send-keys -t ${tmux_session_name}:${slot_number} './run.sh' C-m
283281
sleep 2
284282

285-
local new_pysmurf_id
286-
new_pysmurf_id=$(docker ps -a -n 1 -q)
287-
if [[ -n "$new_pysmurf_id" ]]; then
288-
docker rename "$new_pysmurf_id" "pysmurf_s${slot_number}" 2>/dev/null
289-
fi
290-
291283
if [ "$enable_tmux_logging" = true ] ; then
292284
tmux run-shell -t ${tmux_session_name}:${slot_number} /home/cryo/tmux-logging/scripts/toggle_logging.sh
293285
fi

0 commit comments

Comments
 (0)