修复copilot 与Windows 的copilot 冲突
This commit is contained in:
@@ -160,12 +160,27 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
COPILOT_EXT_BIN="$HOME/.local/share/gh/extensions/gh-copilot/gh-copilot"
|
||||
NEED_COPILOT_INSTALL=false
|
||||
if gh extension list 2>/dev/null | grep -q 'github/gh-copilot'; then
|
||||
log "GitHub Copilot CLI 扩展已安装"
|
||||
# 验证是否为原生 Linux 二进制,而非 VS Code 写入的 Windows .bat wrapper
|
||||
if [ -f "$COPILOT_EXT_BIN" ] && grep -qiE '/mnt/[a-z]/|.bat' "$COPILOT_EXT_BIN" 2>/dev/null; then
|
||||
warn "检测到 Windows 版 gh-copilot 扩展(非 Linux 原生),将重新安装..."
|
||||
gh extension remove github/gh-copilot 2>/dev/null || rm -rf "$(dirname "$COPILOT_EXT_BIN")"
|
||||
NEED_COPILOT_INSTALL=true
|
||||
else
|
||||
log "GitHub Copilot CLI 扩展已安装(原生 Linux 版)"
|
||||
fi
|
||||
else
|
||||
NEED_COPILOT_INSTALL=true
|
||||
fi
|
||||
if [ "$NEED_COPILOT_INSTALL" = true ]; then
|
||||
log "安装 GitHub Copilot CLI 扩展..."
|
||||
gh extension install github/gh-copilot
|
||||
log "GitHub Copilot CLI 扩展已安装(命令入口:gh copilot)"
|
||||
if gh extension install github/gh-copilot 2>/dev/null; then
|
||||
log "GitHub Copilot CLI 扩展已安装(命令入口:gh copilot)"
|
||||
else
|
||||
warn "GitHub Copilot CLI 扩展安装失败,可稍后手动执行:gh extension install github/gh-copilot"
|
||||
fi
|
||||
fi
|
||||
|
||||
mkdir -p ~/.claude
|
||||
@@ -179,6 +194,19 @@ PROFILE_BLOCK=""
|
||||
[ -n "$ANTHROPIC_BASE_URL" ] && PROFILE_BLOCK+="export ANTHROPIC_BASE_URL='$ANTHROPIC_BASE_URL'\n"
|
||||
PROFILE_BLOCK+="export CLAUDE_MODEL='$CLAUDE_MODEL'\n"
|
||||
|
||||
# 从 PATH 过滤掉 VS Code Copilot Chat 写入的 Windows copilot 包装脚本
|
||||
# 该脚本会调用 .bat 文件,在 Linux 下无法执行,导致 gh copilot 报错
|
||||
if ! grep -q 'copilotCli' ~/.bashrc 2>/dev/null; then
|
||||
cat >> ~/.bashrc << 'PATHFIX'
|
||||
|
||||
# 排除 VS Code Copilot Chat Windows wrapper(gh copilot 在 WSL2 中会误调用 .bat 文件)
|
||||
PATH="$(echo "$PATH" | tr ':' '\n' | grep -Fv 'copilotCli' | tr '\n' ':' | sed 's/:$//')"
|
||||
PATHFIX
|
||||
log "已写入 PATH 修复(排除 Windows copilotCli)到 ~/.bashrc"
|
||||
fi
|
||||
# 在当前 shell 也立即生效
|
||||
PATH="$(echo "$PATH" | tr ':' '\n' | grep -Fv 'copilotCli' | tr '\n' ':' | sed 's/:$//')"
|
||||
|
||||
for rc in ~/.bashrc ~/.profile; do
|
||||
if ! grep -q "ANTHROPIC_API_KEY" "$rc" 2>/dev/null; then
|
||||
printf "\n# Claude Code CLI\n${PROFILE_BLOCK}" >> "$rc"
|
||||
|
||||
Reference in New Issue
Block a user