文档: 补充 DevContainer 详细用法并移除 runoc.sh
CI / lint (push) Successful in 6s

This commit is contained in:
2026-04-19 23:32:19 +08:00
parent 66f9acaf7c
commit f91fdbfec8
5 changed files with 111 additions and 113 deletions
-10
View File
@@ -257,16 +257,6 @@ if [ ! -f "$RUNCC_SCRIPT" ]; then
echo " $(status_ok) 已从模板创建 runcc.sh"
fi
# 检查并创建 runoc.sh(从模板复制)
RUNOC_SCRIPT="$WORKSPACE/.devcontainer/.volumes/bin/runoc.sh"
RUNOC_TEMPLATE="$SCRIPT_DIR/templates/runoc.sh"
if [ ! -f "$RUNOC_SCRIPT" ]; then
mkdir -p "$(dirname "$RUNOC_SCRIPT")"
cp "$RUNOC_TEMPLATE" "$RUNOC_SCRIPT"
chmod +x "$RUNOC_SCRIPT"
echo " $(status_ok) 已从模板创建 runoc.sh"
fi
# 配置 Open Code
echo "配置 Open Code..."
if [ -f "$WORKSPACE/.devcontainer/opencode.json.example" ]; then
-20
View File
@@ -63,21 +63,6 @@ alias cc5='cc 5'
alias cc5t='cc 5t'
alias cc51='cc 51'
# OpenCode 启动函数(参数透传至 runoc.sh)
oc() { {{BIN_PATH}}/runoc.sh "$@"; }
# 模型快捷方式: oc51, oc 51 ...
alias oc45='oc 45'
alias oc45a='oc 45a'
alias oc45f='oc 45f'
alias oc46='oc 46'
alias oc46v='oc 46v'
alias oc46vf='oc 46vf'
alias oc47='oc 47'
alias oc5='oc 5'
alias oc5t='oc 5t'
alias oc51='oc 51'
# tmux pane 级模型继承:从 pane option 读取模型配置(由 runcc.sh 写入)
# 覆盖 session 级环境变量,实现同 session 不同 pane 的模型隔离
if [ -n "${TMUX:-}" ]; then
@@ -89,11 +74,6 @@ if [ -n "${TMUX:-}" ]; then
fi
unset _model
_oc_model="$(tmux show-option -pv @opencode_model 2>/dev/null || true)"
if [ -n "$_oc_model" ]; then
export OPENCODE_MODEL="$_oc_model"
fi
unset _oc_model
fi
# Docker 组提示(仅在需要时显示)
-73
View File
@@ -1,73 +0,0 @@
#!/bin/bash
# OpenCode 启动脚本,支持通过参数选择 GLM 模型版本
#
# 用法: runoc.sh [模型]
#
# 模型: 45|45a|45f|46|46v|46vf|47|5|5t|51 (默认 51)
set -euo pipefail
PROJECT_CONFIG="/workspace/opencode.json"
GLOBAL_CONFIG="$HOME/.config/opencode/opencode.json"
# 参数解析
MODEL_KEY=""
while [ $# -gt 0 ]; do
case "$1" in
-h|--help)
echo "用法: runoc.sh [模型]"
echo ""
echo "模型: 45|45a|45f|46|46v|46vf|47|5|5t|51 (默认 51)"
exit 0
;;
*)
MODEL_KEY="$1"; shift
;;
esac
done
MODEL_KEY="${MODEL_KEY:-51}"
case "$MODEL_KEY" in
45) MODEL="zhipuai-coding-plan/glm-4.5" ;;
45a) MODEL="zhipuai-coding-plan/glm-4.5-air" ;;
45f) MODEL="zhipuai-coding-plan/glm-4.5-flash" ;;
46) MODEL="zhipuai-coding-plan/glm-4.6" ;;
46v) MODEL="zhipuai-coding-plan/glm-4.6v" ;;
46vf) MODEL="zhipuai-coding-plan/glm-4.6v-flash" ;;
47) MODEL="zhipuai-coding-plan/glm-4.7" ;;
5) MODEL="zhipuai-coding-plan/glm-5" ;;
5t) MODEL="zhipuai-coding-plan/glm-5-turbo" ;;
51) MODEL="zhipuai-coding-plan/glm-5.1" ;;
*)
echo "未知模型: $MODEL_KEY (可选: 45|45a|45f|46|46v|46vf|47|5|5t|51)"
exit 1
;;
esac
# ── tmux 模型传播(确保子 pane 能获取正确模型)─────────
if [ -n "${TMUX:-}" ]; then
SESSION_ID="$(tmux display-message -p '#{session_id}')"
# session 级环境变量
tmux setenv -t "$SESSION_ID" OPENCODE_MODEL "$MODEL"
# pane 级选项(.bashrc 会在新 shell 启动时读取)
tmux set-option -p @opencode_model "$MODEL"
fi
# ── OpenCode 自更新检查(每日一次)──
LAST_UPDATE_FILE="$HOME/.cache/opencode_update_last_run"
TODAY=$(date +%Y-%m-%d)
mkdir -p "$(dirname "$LAST_UPDATE_FILE")"
if [ ! -f "$LAST_UPDATE_FILE" ] || [ "$(cat "$LAST_UPDATE_FILE" 2>/dev/null)" != "$TODAY" ]; then
opencode upgrade 2>/dev/null || true
echo "$TODAY" > "$LAST_UPDATE_FILE"
fi
# ── 构建启动参数 ──
OC_ARGS=(-m "$MODEL")
echo "启动 OpenCode (模型: $MODEL)"
opencode "${OC_ARGS[@]}"