74 lines
2.1 KiB
Bash
Executable File
74 lines
2.1 KiB
Bash
Executable File
#!/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[@]}"
|