fix: remove build-usb.sh, correct README positioning
The repo IS the USB content (minus large deps), not a builder tool. setup.sh fills in missing deps → folder is ready to copy to USB.
This commit is contained in:
179
README.md
179
README.md
@@ -1,142 +1,74 @@
|
|||||||
# 🦞 U-Claw
|
# 🦞 U-Claw
|
||||||
|
|
||||||
**AI 助手 U 盘制作工具 — 克隆代码,一键制作,双击就能用**
|
**AI 助手 U 盘 — 克隆、补依赖、拷到 U 盘、双击运行**
|
||||||
|
|
||||||
[](https://opensource.org/licenses/MIT)
|
[](https://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
U-Claw 是一个开源工具集,帮你把 [OpenClaw](https://github.com/openclaw/openclaw) AI 助手打包成 U 盘。插上 U 盘双击运行,或从 U 盘安装到电脑。全部依赖从国内镜像下载,不需要翻墙。
|
U-Claw 把 [OpenClaw](https://github.com/openclaw/openclaw) 打包成 U 盘便携版。这个代码库就是 U 盘里的全部内容,只是不上传大依赖(Node.js、node_modules)。运行 `setup.sh` 补齐依赖后,直接拷贝到 U 盘就能用。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 这个项目能做什么
|
## 使用方式
|
||||||
|
|
||||||
| # | 功能 | 说明 |
|
|
||||||
|---|------|------|
|
|
||||||
| 1 | **制作 U 盘** | `build-usb.sh` 一键下载所有资源,打包成可拷贝到 U 盘的完整目录 |
|
|
||||||
| 2 | **免安装运行** | U 盘插上电脑,双击 `Mac-Start.command` 或 `Windows-Start.bat` 直接用 |
|
|
||||||
| 3 | **从 U 盘安装** | 双击 `Mac-Install.command` 或 `Windows-Install.bat`,离线安装到电脑 |
|
|
||||||
| 4 | **桌面 App** | Electron 桌面版,打包成 DMG/EXE 分发 |
|
|
||||||
| 5 | **文档 + 官网** | 使用指南、国内镜像说明、AI 模型配置教程 |
|
|
||||||
|
|
||||||
## 快速开始
|
|
||||||
|
|
||||||
### 制作一个 U 盘(最常用)
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/dongsheng123132/u-claw.git
|
git clone https://github.com/dongsheng123132/u-claw.git
|
||||||
cd u-claw/portable
|
cd u-claw/portable
|
||||||
|
bash setup.sh # 补齐大依赖(Node.js + OpenClaw,国内镜像,约 1 分钟)
|
||||||
# 一键制作 U 盘(自动下载 Node.js + OpenClaw + QQ 插件,全部国内镜像)
|
|
||||||
bash build-usb.sh
|
|
||||||
|
|
||||||
# 完成后把 usb-build/U-Claw/ 文件夹拷贝到 U 盘
|
|
||||||
```
|
```
|
||||||
|
|
||||||
`build-usb.sh` 自动完成:
|
**完成后 `portable/` 就是完整的 U 盘内容。** 拷贝到 U 盘即可:
|
||||||
1. 选择目标平台(Mac / Windows / 全部)
|
|
||||||
2. 从国内镜像下载 Node.js v22
|
|
||||||
3. 安装 OpenClaw + QQ 插件
|
|
||||||
4. 打包成可直接拷贝的目录
|
|
||||||
5. 可选打包成 tar.gz
|
|
||||||
|
|
||||||
### 在自己电脑上搭建(开发/测试)
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd u-claw/portable
|
# Mac
|
||||||
bash setup.sh # 搭建运行环境
|
cp -R portable/ /Volumes/你的U盘/U-Claw/
|
||||||
bash Mac-Start.command # Mac 启动
|
|
||||||
# 或 Windows-Start.bat # Windows 启动
|
# 或直接在 Finder 拖过去
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
## U 盘上能做什么
|
||||||
|
|
||||||
## 项目结构
|
| 功能 | Mac | Windows | 说明 |
|
||||||
|
|------|-----|---------|------|
|
||||||
|
| **免安装运行** | `Mac-Start.command` | `Windows-Start.bat` | 双击直接跑,不碰电脑 |
|
||||||
|
| **功能菜单** | `Mac-Menu.command` | `Windows-Menu.bat` | 配置、QQ、备份等 8 项 |
|
||||||
|
| **安装到电脑** | `Mac-Install.command` | `Windows-Install.bat` | 离线优先,缺啥走国内镜像 |
|
||||||
|
| **首次配置** | `Config.html` | `Config.html` | 浏览器打开,选模型填 Key |
|
||||||
|
|
||||||
|
## U 盘文件结构
|
||||||
|
|
||||||
```
|
```
|
||||||
U-Claw/
|
U-Claw/ ← 整个拷到 U 盘
|
||||||
├── portable/ ← 🔥 U 盘核心
|
├── Mac-Start.command 双击 = Mac 免安装运行
|
||||||
│ ├── build-usb.sh ⭐ 一键制作 U 盘
|
├── Mac-Menu.command 功能菜单(8 项)
|
||||||
│ ├── setup.sh 开发者搭建脚本
|
├── Mac-Install.command 安装到 Mac
|
||||||
│ ├── Mac-Start.command Mac 免安装启动
|
├── Windows-Start.bat 双击 = Windows 免安装运行
|
||||||
│ ├── Mac-Menu.command Mac 功能菜单(8 项)
|
├── Windows-Menu.bat 功能菜单
|
||||||
│ ├── Mac-Install.command Mac 从 U 盘安装到电脑
|
├── Windows-Install.bat 安装到 Windows
|
||||||
│ ├── Windows-Start.bat Windows 免安装启动
|
├── Config.html 首次配置页面
|
||||||
│ ├── Windows-Menu.bat Windows 功能菜单
|
├── setup.sh 补齐依赖用(开发者用)
|
||||||
│ ├── Windows-Install.bat Windows 从 U 盘安装到电脑
|
├── app/ ← 大依赖(setup.sh 下载,不进 git)
|
||||||
│ ├── Config.html 首次配置页面
|
│ ├── core/ OpenClaw + QQ 插件
|
||||||
│ ├── U-Claw.html 导航首页
|
|
||||||
│ └── migrate.js 配置迁移工具
|
|
||||||
│
|
|
||||||
├── u-claw-app/ ← 🖥 桌面安装版(Electron)
|
|
||||||
│ ├── setup.sh / setup.bat 一键搭建开发环境
|
|
||||||
│ ├── src/main.js Electron 主进程
|
|
||||||
│ └── package.json 依赖 & 构建配置
|
|
||||||
│
|
|
||||||
├── website/ ← 🌐 官网 + 教程(u-claw.org)
|
|
||||||
│ ├── guide.html 使用指南(含国内镜像、搭建教程)
|
|
||||||
│ ├── index.html 官网首页
|
|
||||||
│ └── skills.html 技能市场页
|
|
||||||
│
|
|
||||||
└── README.md
|
|
||||||
```
|
|
||||||
|
|
||||||
### U 盘上的文件(制作完成后)
|
|
||||||
|
|
||||||
```
|
|
||||||
U-Claw/ ← 拷贝到 U 盘
|
|
||||||
├── Mac-Start.command 双击 = Mac 免安装运行
|
|
||||||
├── Mac-Install.command 双击 = 安装到 Mac
|
|
||||||
├── Windows-Start.bat 双击 = Windows 免安装运行
|
|
||||||
├── Windows-Install.bat 双击 = 安装到 Windows
|
|
||||||
├── Mac-Menu.command Mac 功能菜单
|
|
||||||
├── Windows-Menu.bat Windows 功能菜单
|
|
||||||
├── Config.html 配置页面
|
|
||||||
├── app/ 运行时(~2.3GB)
|
|
||||||
│ ├── core/ OpenClaw + QQ 插件
|
|
||||||
│ └── runtime/
|
│ └── runtime/
|
||||||
│ ├── node-mac-arm64/ Mac Apple Silicon
|
│ ├── node-mac-arm64/ Mac Apple Silicon
|
||||||
│ └── node-win-x64/ Windows 64-bit
|
│ └── node-win-x64/ Windows 64-bit
|
||||||
└── data/ 用户数据
|
└── data/ ← 用户数据(不进 git)
|
||||||
├── .openclaw/ 配置文件
|
├── .openclaw/ 配置文件
|
||||||
├── memory/ AI 记忆
|
├── memory/ AI 记忆
|
||||||
└── backups/ 备份
|
└── backups/ 备份
|
||||||
```
|
```
|
||||||
|
|
||||||
## U 盘上的两种用法
|
**代码库 = U 盘内容 - 大依赖。** `app/` 和 `data/` 在 `.gitignore` 里。
|
||||||
|
|
||||||
### 免安装运行(推荐)
|
## 桌面安装版(Electron App)
|
||||||
|
|
||||||
直接从 U 盘运行,不修改电脑任何文件。换电脑插上 U 盘,配置还在。
|
除了 U 盘便携版,还有桌面 App 版本:
|
||||||
|
|
||||||
- Mac: 双击 `Mac-Start.command`
|
|
||||||
- Windows: 双击 `Windows-Start.bat`
|
|
||||||
|
|
||||||
**适合:** 临时电脑、公司电脑、网吧、不想装东西
|
|
||||||
|
|
||||||
### 安装到电脑
|
|
||||||
|
|
||||||
从 U 盘安装到 `~/.uclaw/`,之后不需要 U 盘也能用。
|
|
||||||
|
|
||||||
- Mac: 双击 `Mac-Install.command`
|
|
||||||
- Windows: 双击 `Windows-Install.bat`
|
|
||||||
|
|
||||||
安装逻辑:
|
|
||||||
1. 检查环境 → 缺什么先从 U 盘离线安装
|
|
||||||
2. U 盘没有的 → 从国内镜像在线下载
|
|
||||||
3. 创建启动脚本 → 以后双击 `~/.uclaw/start.command` 启动
|
|
||||||
|
|
||||||
## 桌面版(Electron App)
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd u-claw-app
|
cd u-claw-app
|
||||||
|
bash setup.sh # 一键安装开发环境(国内镜像)
|
||||||
# 一键安装开发环境(国内镜像)
|
npm run dev # 开发模式运行
|
||||||
bash setup.sh # Mac/Linux
|
npm run build:mac-arm64 # 打包 → release/*.dmg
|
||||||
setup.bat # Windows
|
npm run build:win # 打包 → release/*.exe
|
||||||
|
|
||||||
# 打包
|
|
||||||
npm run build:mac-arm64 # → release/*.dmg
|
|
||||||
npm run build:win # → release/*.exe
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 支持的 AI 模型
|
## 支持的 AI 模型
|
||||||
@@ -169,7 +101,7 @@ Claude · GPT · Gemini(需翻墙或中转)
|
|||||||
|
|
||||||
## 国内镜像
|
## 国内镜像
|
||||||
|
|
||||||
所有脚本默认使用国内镜像,无需翻墙:
|
所有脚本默认走国内镜像,无需翻墙:
|
||||||
|
|
||||||
| 资源 | 镜像 |
|
| 资源 | 镜像 |
|
||||||
|------|------|
|
|------|------|
|
||||||
@@ -177,13 +109,21 @@ Claude · GPT · Gemini(需翻墙或中转)
|
|||||||
| Node.js | `npmmirror.com/mirrors/node` |
|
| Node.js | `npmmirror.com/mirrors/node` |
|
||||||
| Electron | `npmmirror.com/mirrors/electron` |
|
| Electron | `npmmirror.com/mirrors/electron` |
|
||||||
|
|
||||||
## 参与开发
|
## 开发 & 测试
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# 克隆
|
||||||
git clone https://github.com/dongsheng123132/u-claw.git
|
git clone https://github.com/dongsheng123132/u-claw.git
|
||||||
cd u-claw/portable
|
|
||||||
bash setup.sh # 搭建开发环境
|
# 补依赖
|
||||||
bash Mac-Start.command # 测试启动
|
cd u-claw/portable && bash setup.sh
|
||||||
|
|
||||||
|
# 测试启动
|
||||||
|
bash Mac-Start.command # Mac
|
||||||
|
# 或 Windows-Start.bat # Windows
|
||||||
|
|
||||||
|
# 测试没问题 → 拷到 U 盘
|
||||||
|
# 有问题 → 修代码 → 重新测试
|
||||||
```
|
```
|
||||||
|
|
||||||
### 提交代码
|
### 提交代码
|
||||||
@@ -209,18 +149,15 @@ git push -u origin feat/your-feature
|
|||||||
**Q: 需要翻墙吗?**
|
**Q: 需要翻墙吗?**
|
||||||
安装不需要。运行需要联网调 API,国产模型无需翻墙。
|
安装不需要。运行需要联网调 API,国产模型无需翻墙。
|
||||||
|
|
||||||
|
**Q: U 盘需要多大?**
|
||||||
|
建议 4GB 以上(完整版约 2.3GB)。
|
||||||
|
|
||||||
**Q: 能分发吗?**
|
**Q: 能分发吗?**
|
||||||
MIT 协议,随便复制。
|
MIT 协议,随便复制。
|
||||||
|
|
||||||
**Q: Mac 提示"未验证的开发者"?**
|
**Q: Mac 提示"未验证的开发者"?**
|
||||||
右键脚本 → 打开。
|
右键脚本 → 打开。
|
||||||
|
|
||||||
**Q: U 盘需要多大?**
|
|
||||||
建议 4GB 以上(完整版约 2.3GB)。
|
|
||||||
|
|
||||||
**Q: Windows 需要 WSL?**
|
|
||||||
不需要,自带 Windows 版 Node.js。
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
[MIT](LICENSE)
|
[MIT](LICENSE)
|
||||||
|
|||||||
@@ -1,262 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# ============================================================
|
|
||||||
# U-Claw USB Builder - 一键制作 U 盘
|
|
||||||
# 运行后自动下载所有依赖,打包成可直接拷贝到 U 盘的完整目录
|
|
||||||
# ============================================================
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
GREEN='\033[0;32m'
|
|
||||||
CYAN='\033[0;36m'
|
|
||||||
RED='\033[0;31m'
|
|
||||||
YELLOW='\033[1;33m'
|
|
||||||
NC='\033[0m'
|
|
||||||
BOLD='\033[1m'
|
|
||||||
DIM='\033[2m'
|
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
||||||
REPO_DIR="$(dirname "$SCRIPT_DIR")"
|
|
||||||
NODE_VER="v22.14.0"
|
|
||||||
MIRROR="https://registry.npmmirror.com"
|
|
||||||
NODE_MIRROR="https://npmmirror.com/mirrors/node"
|
|
||||||
|
|
||||||
# Output directory
|
|
||||||
OUTPUT_DIR="$REPO_DIR/usb-build"
|
|
||||||
USB_DIR="$OUTPUT_DIR/U-Claw"
|
|
||||||
|
|
||||||
clear
|
|
||||||
echo ""
|
|
||||||
echo -e "${CYAN}${BOLD}"
|
|
||||||
echo " ╔══════════════════════════════════════╗"
|
|
||||||
echo " ║ U-Claw USB Builder ║"
|
|
||||||
echo " ║ 一键制作 U 盘 ║"
|
|
||||||
echo " ╚══════════════════════════════════════╝"
|
|
||||||
echo -e "${NC}"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# ---- Detect platform ----
|
|
||||||
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
|
|
||||||
ARCH=$(uname -m)
|
|
||||||
|
|
||||||
echo -e " ${BOLD}系统:${NC} $OS $ARCH"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Ask which platforms to build for
|
|
||||||
echo -e " ${BOLD}选择要打包的平台:${NC}"
|
|
||||||
echo -e " ${GREEN}[1]${NC} 仅 Mac Apple Silicon (arm64)"
|
|
||||||
echo -e " ${GREEN}[2]${NC} 仅 Windows (x64)"
|
|
||||||
echo -e " ${GREEN}[3]${NC} Mac + Windows (全部)"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
if [ -t 0 ]; then
|
|
||||||
read -p " 选择 [1-3, 默认 3]: " PLATFORM_CHOICE
|
|
||||||
else
|
|
||||||
PLATFORM_CHOICE="3"
|
|
||||||
fi
|
|
||||||
PLATFORM_CHOICE="${PLATFORM_CHOICE:-3}"
|
|
||||||
|
|
||||||
BUILD_MAC=false
|
|
||||||
BUILD_WIN=false
|
|
||||||
case $PLATFORM_CHOICE in
|
|
||||||
1) BUILD_MAC=true ;;
|
|
||||||
2) BUILD_WIN=true ;;
|
|
||||||
*) BUILD_MAC=true; BUILD_WIN=true ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# ---- Clean previous build ----
|
|
||||||
if [ -d "$USB_DIR" ]; then
|
|
||||||
echo -e " ${YELLOW}清理上次构建...${NC}"
|
|
||||||
rm -rf "$USB_DIR"
|
|
||||||
fi
|
|
||||||
mkdir -p "$USB_DIR"
|
|
||||||
|
|
||||||
# ---- Step 1: Copy scripts and HTML ----
|
|
||||||
echo -e " ${BOLD}[1/5] 复制脚本和页面...${NC}"
|
|
||||||
|
|
||||||
# Copy all launch scripts and HTML pages
|
|
||||||
for f in Mac-Start.command Mac-Menu.command Windows-Start.bat Windows-Menu.bat \
|
|
||||||
Config.html U-Claw.html SkillHub.html default-config.json migrate.js setup.sh; do
|
|
||||||
if [ -f "$SCRIPT_DIR/$f" ]; then
|
|
||||||
cp "$SCRIPT_DIR/$f" "$USB_DIR/"
|
|
||||||
echo -e " ${DIM} + $f${NC}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Make scripts executable
|
|
||||||
chmod +x "$USB_DIR"/*.command 2>/dev/null || true
|
|
||||||
chmod +x "$USB_DIR"/*.sh 2>/dev/null || true
|
|
||||||
|
|
||||||
echo -e " ${GREEN}脚本复制完成 ✓${NC}"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# ---- Step 2: Create data directory structure ----
|
|
||||||
echo -e " ${BOLD}[2/5] 创建数据目录...${NC}"
|
|
||||||
|
|
||||||
mkdir -p "$USB_DIR/data/.openclaw"
|
|
||||||
mkdir -p "$USB_DIR/data/memory"
|
|
||||||
mkdir -p "$USB_DIR/data/backups"
|
|
||||||
|
|
||||||
# Default config
|
|
||||||
cat > "$USB_DIR/data/.openclaw/openclaw.json" << 'CFGEOF'
|
|
||||||
{
|
|
||||||
"gateway": {
|
|
||||||
"mode": "local",
|
|
||||||
"auth": { "token": "uclaw" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
CFGEOF
|
|
||||||
|
|
||||||
echo -e " ${GREEN}数据目录创建完成 ✓${NC}"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# ---- Step 3: Download Node.js runtimes ----
|
|
||||||
echo -e " ${BOLD}[3/5] 下载 Node.js 运行时...${NC}"
|
|
||||||
|
|
||||||
download_node() {
|
|
||||||
local PLATFORM=$1
|
|
||||||
local TARGET_DIR=$2
|
|
||||||
|
|
||||||
if [ -d "$TARGET_DIR" ] && [ -f "$TARGET_DIR/bin/node" -o -f "$TARGET_DIR/node.exe" ]; then
|
|
||||||
echo -e " ${GREEN}$PLATFORM 已存在,跳过${NC}"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p "$TARGET_DIR"
|
|
||||||
|
|
||||||
if echo "$PLATFORM" | grep -q "win"; then
|
|
||||||
local ZIPNAME="node-${NODE_VER}-${PLATFORM}.zip"
|
|
||||||
local URL="${NODE_MIRROR}/${NODE_VER}/${ZIPNAME}"
|
|
||||||
echo -e " ${CYAN}下载 $ZIPNAME...${NC}"
|
|
||||||
curl -# -L "$URL" -o "/tmp/$ZIPNAME"
|
|
||||||
|
|
||||||
# Unzip
|
|
||||||
local TMPEXTRACT="/tmp/node-extract-$$"
|
|
||||||
mkdir -p "$TMPEXTRACT"
|
|
||||||
unzip -q "/tmp/$ZIPNAME" -d "$TMPEXTRACT"
|
|
||||||
cp -R "$TMPEXTRACT"/node-${NODE_VER}-${PLATFORM}/* "$TARGET_DIR/"
|
|
||||||
rm -rf "$TMPEXTRACT" "/tmp/$ZIPNAME"
|
|
||||||
else
|
|
||||||
local TARBALL="node-${NODE_VER}-${PLATFORM}.tar.gz"
|
|
||||||
local URL="${NODE_MIRROR}/${NODE_VER}/${TARBALL}"
|
|
||||||
echo -e " ${CYAN}下载 $TARBALL...${NC}"
|
|
||||||
curl -# -L "$URL" -o "/tmp/$TARBALL"
|
|
||||||
tar -xzf "/tmp/$TARBALL" -C "$TARGET_DIR" --strip-components=1
|
|
||||||
rm -f "/tmp/$TARBALL"
|
|
||||||
chmod +x "$TARGET_DIR/bin/node"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e " ${GREEN}$PLATFORM 下载完成 ✓${NC}"
|
|
||||||
}
|
|
||||||
|
|
||||||
RUNTIME_DIR="$USB_DIR/app/runtime"
|
|
||||||
mkdir -p "$RUNTIME_DIR"
|
|
||||||
|
|
||||||
if $BUILD_MAC; then
|
|
||||||
download_node "darwin-arm64" "$RUNTIME_DIR/node-mac-arm64"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if $BUILD_WIN; then
|
|
||||||
download_node "win-x64" "$RUNTIME_DIR/node-win-x64"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# ---- Step 4: Install OpenClaw + plugins ----
|
|
||||||
echo -e " ${BOLD}[4/5] 安装 OpenClaw + QQ 插件...${NC}"
|
|
||||||
|
|
||||||
CORE_DIR="$USB_DIR/app/core"
|
|
||||||
mkdir -p "$CORE_DIR"
|
|
||||||
|
|
||||||
# Determine which Node.js to use for npm install
|
|
||||||
if $BUILD_MAC && [ -f "$RUNTIME_DIR/node-mac-arm64/bin/node" ]; then
|
|
||||||
INSTALL_NODE="$RUNTIME_DIR/node-mac-arm64/bin/node"
|
|
||||||
INSTALL_NPM="$RUNTIME_DIR/node-mac-arm64/bin/npm"
|
|
||||||
elif command -v node >/dev/null 2>&1; then
|
|
||||||
INSTALL_NODE="node"
|
|
||||||
INSTALL_NPM="npm"
|
|
||||||
else
|
|
||||||
echo -e " ${RED}没有可用的 Node.js,无法安装依赖${NC}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Create package.json
|
|
||||||
cat > "$CORE_DIR/package.json" << 'PKGEOF'
|
|
||||||
{
|
|
||||||
"name": "u-claw-core",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"private": true,
|
|
||||||
"dependencies": {
|
|
||||||
"openclaw": "latest"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
PKGEOF
|
|
||||||
|
|
||||||
echo -e " ${CYAN}安装 OpenClaw (国内镜像)...${NC}"
|
|
||||||
cd "$CORE_DIR"
|
|
||||||
"$INSTALL_NODE" "$INSTALL_NPM" install --registry="$MIRROR" 2>&1 | tail -3
|
|
||||||
|
|
||||||
# Install QQ plugin
|
|
||||||
echo -e " ${CYAN}安装 QQ 插件...${NC}"
|
|
||||||
"$INSTALL_NODE" "$INSTALL_NPM" install @sliverp/qqbot@latest --registry="$MIRROR" 2>&1 | tail -2
|
|
||||||
|
|
||||||
echo -e " ${GREEN}OpenClaw + QQ 插件安装完成 ✓${NC}"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# ---- Step 5: Calculate size and finish ----
|
|
||||||
echo -e " ${BOLD}[5/5] 完成!${NC}"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
USB_SIZE=$(du -sh "$USB_DIR" | cut -f1)
|
|
||||||
FILE_COUNT=$(find "$USB_DIR" -type f | wc -l | tr -d ' ')
|
|
||||||
|
|
||||||
echo -e " ${GREEN}${BOLD}╔══════════════════════════════════════════╗"
|
|
||||||
echo -e " ║ ✅ U 盘制作完成! ║"
|
|
||||||
echo -e " ╚══════════════════════════════════════════╝${NC}"
|
|
||||||
echo ""
|
|
||||||
echo -e " ${BOLD}输出目录:${NC} $USB_DIR"
|
|
||||||
echo -e " ${BOLD}总大小:${NC} $USB_SIZE"
|
|
||||||
echo -e " ${BOLD}文件数:${NC} $FILE_COUNT"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
if $BUILD_MAC; then
|
|
||||||
echo -e " ${GREEN}✓${NC} Mac Apple Silicon (arm64)"
|
|
||||||
fi
|
|
||||||
if $BUILD_WIN; then
|
|
||||||
echo -e " ${GREEN}✓${NC} Windows x64"
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
echo -e " ${BOLD}接下来:${NC}"
|
|
||||||
echo ""
|
|
||||||
echo -e " ${CYAN}1. 插入 U 盘(建议 4GB 以上)${NC}"
|
|
||||||
echo -e " ${CYAN}2. 复制到 U 盘:${NC}"
|
|
||||||
echo ""
|
|
||||||
echo -e " ${BOLD}Mac:${NC}"
|
|
||||||
echo -e " cp -R $USB_DIR /Volumes/你的U盘/"
|
|
||||||
echo ""
|
|
||||||
echo -e " ${BOLD}或者用 Finder:${NC}"
|
|
||||||
echo -e " 直接把 ${BOLD}U-Claw${NC} 文件夹拖到 U 盘"
|
|
||||||
echo ""
|
|
||||||
echo -e " ${CYAN}3. 在目标电脑上:${NC}"
|
|
||||||
echo -e " Mac: 双击 ${BOLD}Mac-Start.command${NC}"
|
|
||||||
echo -e " Win: 双击 ${BOLD}Windows-Start.bat${NC}"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Optional: create tar.gz
|
|
||||||
if [ -t 0 ]; then
|
|
||||||
read -p " 是否也打包成 tar.gz 方便分发?(y/n): " -n 1 PACK
|
|
||||||
echo ""
|
|
||||||
if [ "$PACK" = "y" ] || [ "$PACK" = "Y" ]; then
|
|
||||||
echo ""
|
|
||||||
echo -e " ${CYAN}打包中...${NC}"
|
|
||||||
cd "$OUTPUT_DIR"
|
|
||||||
tar -czf "U-Claw.tar.gz" "U-Claw/"
|
|
||||||
PACK_SIZE=$(du -sh "$OUTPUT_DIR/U-Claw.tar.gz" | cut -f1)
|
|
||||||
echo -e " ${GREEN}打包完成: $OUTPUT_DIR/U-Claw.tar.gz ($PACK_SIZE)${NC}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo -e " ${DIM}完成!${NC}"
|
|
||||||
Reference in New Issue
Block a user