mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-22 17:57:46 +00:00
120 lines
4.8 KiB
Bash
Executable File
120 lines
4.8 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# Qwen CLI Bridge - 首次安装脚本
|
||
|
||
# 颜色定义
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
BLUE='\033[0;34m'
|
||
CYAN='\033[0;36m'
|
||
NC='\033[0m'
|
||
|
||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||
|
||
clear
|
||
echo -e "${CYAN}╔════════════════════════════════════════════════════════════════╗${NC}"
|
||
echo -e "${CYAN}║ ║${NC}"
|
||
echo -e "${CYAN}║ 🎯 Qwen CLI Bridge - 首次安装向导 ║${NC}"
|
||
echo -e "${CYAN}║ ║${NC}"
|
||
echo -e "${CYAN}╚════════════════════════════════════════════════════════════════╝${NC}"
|
||
echo ""
|
||
|
||
echo -e "${YELLOW}这是首次安装,需要手动加载插件到 Chrome。${NC}"
|
||
echo ""
|
||
|
||
# 步骤 1: 配置 Native Host
|
||
echo -e "${BLUE}步骤 1:${NC} 配置 Native Host..."
|
||
|
||
MANIFEST_DIR="$HOME/Library/Application Support/Google/Chrome/NativeMessagingHosts"
|
||
mkdir -p "$MANIFEST_DIR"
|
||
|
||
# 先创建一个临时的 manifest,允许所有扩展
|
||
cat > "$MANIFEST_DIR/com.qwen.cli.bridge.json" << EOF
|
||
{
|
||
"name": "com.qwen.cli.bridge",
|
||
"description": "Native messaging host for Qwen CLI Bridge",
|
||
"path": "$SCRIPT_DIR/native-host/host.js",
|
||
"type": "stdio",
|
||
"allowed_origins": ["chrome-extension://*/"]
|
||
}
|
||
EOF
|
||
|
||
echo -e "${GREEN}✓${NC} Native Host 已配置"
|
||
|
||
# 步骤 2: 打开 Chrome 扩展页面
|
||
echo -e "\n${BLUE}步骤 2:${NC} 打开 Chrome 扩展管理页面..."
|
||
|
||
open -a "Google Chrome" "chrome://extensions"
|
||
sleep 2
|
||
|
||
echo -e "${GREEN}✓${NC} 已打开扩展管理页面"
|
||
|
||
# 步骤 3: 指导用户安装
|
||
echo ""
|
||
echo -e "${CYAN}════════════════════════════════════════════════════════════════${NC}"
|
||
echo -e "${YELLOW}请按照以下步骤手动安装插件:${NC}"
|
||
echo ""
|
||
echo -e " 1️⃣ 在 Chrome 扩展页面,${GREEN}开启「开发者模式」${NC}(右上角开关)"
|
||
echo ""
|
||
echo -e " 2️⃣ 点击 ${GREEN}「加载已解压的扩展程序」${NC} 按钮"
|
||
echo ""
|
||
echo -e " 3️⃣ 选择以下目录:"
|
||
echo -e " ${BLUE}$SCRIPT_DIR/extension${NC}"
|
||
echo ""
|
||
echo -e " 4️⃣ ${YELLOW}重要:${NC} 记下显示的扩展 ID(类似 ${CYAN}abcdefghijklmnopqrstuvwx${NC})"
|
||
echo ""
|
||
echo -e "${CYAN}════════════════════════════════════════════════════════════════${NC}"
|
||
echo ""
|
||
|
||
# 等待用户输入扩展 ID
|
||
echo -e "${YELLOW}请输入扩展 ID(安装后显示的 ID):${NC}"
|
||
read -p "> " EXTENSION_ID
|
||
|
||
if [[ -z "$EXTENSION_ID" ]]; then
|
||
echo -e "${RED}✗ 未输入扩展 ID${NC}"
|
||
echo -e "${YELLOW}你可以稍后手动更新 Native Host 配置${NC}"
|
||
else
|
||
# 更新 manifest 文件,添加具体的扩展 ID
|
||
cat > "$MANIFEST_DIR/com.qwen.cli.bridge.json" << EOF
|
||
{
|
||
"name": "com.qwen.cli.bridge",
|
||
"description": "Native messaging host for Qwen CLI Bridge",
|
||
"path": "$SCRIPT_DIR/native-host/host.js",
|
||
"type": "stdio",
|
||
"allowed_origins": [
|
||
"chrome-extension://$EXTENSION_ID/",
|
||
"chrome-extension://*/"
|
||
]
|
||
}
|
||
EOF
|
||
|
||
# 保存扩展 ID 供后续使用
|
||
echo "$EXTENSION_ID" > "$SCRIPT_DIR/.extension-id"
|
||
|
||
echo -e "${GREEN}✓${NC} Native Host 已更新,支持扩展 ID: $EXTENSION_ID"
|
||
fi
|
||
|
||
echo ""
|
||
echo -e "${GREEN}════════════════════════════════════════════════════════════════${NC}"
|
||
echo -e "${GREEN} ✅ 首次安装完成! ${NC}"
|
||
echo -e "${GREEN}════════════════════════════════════════════════════════════════${NC}"
|
||
echo ""
|
||
echo -e "现在你可以:"
|
||
echo ""
|
||
echo -e " 1. 运行 ${CYAN}npm run dev${NC} 启动调试环境"
|
||
echo -e " 2. 点击 Chrome 工具栏的插件图标开始使用"
|
||
echo ""
|
||
echo -e "${YELLOW}提示:${NC}"
|
||
echo -e " • 如果看不到插件图标,点击拼图图标并固定插件"
|
||
echo -e " • 首次连接可能需要刷新页面"
|
||
echo ""
|
||
|
||
# 询问是否立即启动
|
||
echo -e "${CYAN}是否立即启动调试环境?(y/n)${NC}"
|
||
read -p "> " START_NOW
|
||
|
||
if [[ "$START_NOW" == "y" ]] || [[ "$START_NOW" == "Y" ]]; then
|
||
echo -e "\n${GREEN}正在启动调试环境...${NC}\n"
|
||
exec "$SCRIPT_DIR/debug.sh"
|
||
fi |