@@ -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:
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
8892done
8993shift $(( 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
92101if [ ! -f " $startup_cfg " ]; then
93102 echo " $startup_cfg doesn't exist, unable to smurfhammer." 1>&2
@@ -189,17 +198,37 @@ sleep 0.1
189198info " Creating new ${BOLD}${tmux_session_name}${RESET} tmux session"
190199tmux 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+
192219if [[ " $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"
195222fi
196223
197- # Stop pyrogue servers only for configured slots
224+ # Stop server and client containers for configured slots
198225for (( 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
208237for (( 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
0 commit comments