start-ui 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/usr/bin/env bash
  2. MODE=$1
  3. if [ "x$MODE" == "xdaemon" ]; then
  4. while true; do bash; done
  5. exit
  6. fi
  7. if [ "x$TMUXCMD" = "x" ]; then
  8. export TMUXCMD="tmux -L MUD"
  9. fi
  10. SESSION=MUD
  11. function create-ui() {
  12. echo 正在生成 UI...
  13. HEIGHT=$(tput lines || ( [[ "x$LINES" != "x" ]] && echo $LINES ) || echo 30)
  14. HEIGHT=$(expr $HEIGHT - 1 - 1 - 1 - 6)
  15. # 创建一个标准会话
  16. $TMUXCMD new-session -d -s $SESSION
  17. $TMUXCMD new-window -t $SESSION
  18. $TMUXCMD select-window -t $SESSION:0
  19. $TMUXCMD split-window -t $SESSION -vb
  20. $TMUXCMD send-keys -t $SESSION 'clear; echo "You could input \"mtail id\" to watch your game log."; mtail'
  21. $TMUXCMD send-keys -t $SESSION Enter
  22. $TMUXCMD last-pane
  23. $TMUXCMD send-keys -t $SESSION "sleep 0.1; tmux resize-pane -y $HEIGHT; clear; doc HOW-TO-PLAY.md"
  24. $TMUXCMD send-keys -t $SESSION Enter
  25. echo UI 已创建。
  26. }
  27. # 停顿一下,等待终端状态同步。
  28. echo 正在打开终端...
  29. sleep 0.5;
  30. # 如果是首次启动,则先创建 UI。否则优先连接到已有的会话,继续之前的状态。
  31. if ! $TMUXCMD has-session 2>/dev/null; then
  32. create-ui;
  33. fi
  34. echo 正在连接 UI...
  35. exec $TMUXCMD attach-session -d -t $SESSION