fix: Windows encoding (UTF-8 BOM + CRLF) and macOS Gatekeeper
- Windows bat files: UTF-8 BOM + CRLF + English text to avoid garbled Chinese in cmd.exe - macOS scripts: xattr -rd com.apple.quarantine to fix "unverified developer" popup - New install scripts: Mac-安装并启动.command, Windows-安装并启动.bat (extract tar.gz to local disk then launch)
This commit is contained in:
@@ -92,6 +92,14 @@ export OPENCLAW_CONFIG_PATH="$PORTABLE_CONFIG_PATH"
|
||||
|
||||
mkdir -p "$PORTABLE_STATE_DIR"
|
||||
|
||||
# 移除 macOS 隔离标记(解决"无法验证开发者"弹窗)
|
||||
if xattr -l "$NODE_BIN" 2>/dev/null | grep -q "com.apple.quarantine"; then
|
||||
echo -e " ${YELLOW}正在移除 macOS 安全限制...${NC}"
|
||||
xattr -rd com.apple.quarantine "$UCLAW_DIR" 2>/dev/null || true
|
||||
echo -e " ${GREEN}已移除${NC}"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# 检查依赖
|
||||
if [ ! -d "$OPENCLAW_DIR/node_modules" ]; then
|
||||
echo -e " ${YELLOW}首次运行,正在安装依赖...${NC}"
|
||||
|
||||
@@ -39,6 +39,11 @@ export OPENCLAW_CONFIG_PATH="$PORTABLE_CONFIG_PATH"
|
||||
|
||||
mkdir -p "$PORTABLE_STATE_DIR"
|
||||
|
||||
# 移除 macOS 隔离标记(解决"无法验证开发者"弹窗)
|
||||
if xattr -l "$NODE_BIN" 2>/dev/null | grep -q "com.apple.quarantine"; then
|
||||
xattr -rd com.apple.quarantine "$UCLAW_DIR" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# 检查安装状态
|
||||
check_status() {
|
||||
HAS_MODULES="no"
|
||||
|
||||
86
uclaw-scripts/Mac-安装并启动.command
Executable file
86
uclaw-scripts/Mac-安装并启动.command
Executable file
@@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
# ============================================================
|
||||
# U-Claw 虾盘 - macOS 一键安装并启动
|
||||
# 从 U 盘解压到电脑,然后启动 OpenClaw
|
||||
# ============================================================
|
||||
|
||||
GREEN='\033[0;32m'
|
||||
CYAN='\033[0;36m'
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
clear
|
||||
echo ""
|
||||
echo -e "${CYAN}"
|
||||
echo " ╔══════════════════════════════════════╗"
|
||||
echo " ║ U-Claw 虾盘 v1.1 ║"
|
||||
echo " ║ 一键安装并启动 (macOS) ║"
|
||||
echo " ╚══════════════════════════════════════╝"
|
||||
echo -e "${NC}"
|
||||
|
||||
USB_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
ARCHIVE="$USB_DIR/U-Claw.tar.gz"
|
||||
INSTALL_DIR="$HOME/U-Claw"
|
||||
|
||||
# 移除 macOS 隔离标记(解决"无法验证开发者"弹窗)
|
||||
xattr -rd com.apple.quarantine "$USB_DIR" 2>/dev/null || true
|
||||
|
||||
# 检查压缩包
|
||||
if [ ! -f "$ARCHIVE" ]; then
|
||||
echo -e " ${RED}错误: 找不到 U-Claw.tar.gz${NC}"
|
||||
echo " 请确保此脚本和压缩包在同一目录"
|
||||
read -p " 按回车键退出..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查是否已安装
|
||||
if [ -d "$INSTALL_DIR/openclaw/node_modules" ]; then
|
||||
echo -e " ${GREEN}检测到已安装的 U-Claw${NC}"
|
||||
echo " 位置: $INSTALL_DIR"
|
||||
echo ""
|
||||
echo -e " ${YELLOW}[1] 直接启动(跳过解压)${NC}"
|
||||
echo " [2] 重新安装(覆盖现有)"
|
||||
echo ""
|
||||
read -p " 请选择 [1/2,默认1]: " choice
|
||||
choice="${choice:-1}"
|
||||
if [ "$choice" = "2" ]; then
|
||||
echo ""
|
||||
echo -e " ${YELLOW}正在重新安装...${NC}"
|
||||
rm -rf "$INSTALL_DIR"
|
||||
else
|
||||
echo ""
|
||||
echo -e " ${CYAN}跳过解压,直接启动...${NC}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 解压(如果需要)
|
||||
if [ ! -d "$INSTALL_DIR/openclaw/node_modules" ]; then
|
||||
echo ""
|
||||
echo -e " ${CYAN}正在解压 U-Claw 到 $INSTALL_DIR ...${NC}"
|
||||
echo " 这可能需要 30-60 秒,请稍等..."
|
||||
echo ""
|
||||
|
||||
mkdir -p "$HOME"
|
||||
cd "$HOME"
|
||||
tar xzf "$ARCHIVE"
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e " ${RED}解压失败!${NC}"
|
||||
read -p " 按回车键退出..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e " ${GREEN}解压完成!${NC}"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# 删除 Windows 相关文件(可选,不影响运行)
|
||||
# rm -f "$INSTALL_DIR"/Windows-*.bat 2>/dev/null
|
||||
|
||||
# 启动 OpenClaw
|
||||
echo -e " ${CYAN}正在启动 OpenClaw...${NC}"
|
||||
echo ""
|
||||
|
||||
cd "$INSTALL_DIR"
|
||||
exec bash "$INSTALL_DIR/Mac-从U盘启动.command"
|
||||
@@ -1,14 +1,14 @@
|
||||
@echo off
|
||||
@echo off
|
||||
chcp 65001 >nul 2>&1
|
||||
title U-Claw 虾盘 - OpenClaw 一键启动
|
||||
title U-Claw - OpenClaw Launcher
|
||||
|
||||
echo.
|
||||
echo ╔══════════════════════════════════════╗
|
||||
echo ║ U-Claw 虾盘 v1.1 ║
|
||||
echo ║ OpenClaw 一键启动 (Windows) ║
|
||||
echo ╚══════════════════════════════════════╝
|
||||
echo ========================================
|
||||
echo U-Claw v1.1
|
||||
echo OpenClaw One-Click Launcher (Windows)
|
||||
echo ========================================
|
||||
echo.
|
||||
echo 推荐场景:老电脑 / 临时电脑 / 不想改本机环境
|
||||
echo Recommended: temporary PC / no local install
|
||||
echo.
|
||||
|
||||
set "UCLAW_DIR=%~dp0"
|
||||
@@ -27,32 +27,32 @@ set "OPENCLAW_CONFIG_PATH=%PORTABLE_CONFIG_PATH%"
|
||||
if not exist "%PORTABLE_STATE_DIR%" mkdir "%PORTABLE_STATE_DIR%"
|
||||
|
||||
if not exist "%NODE_BIN%" (
|
||||
echo [错误] 找不到 Node.js 运行环境
|
||||
echo 请确保 runtime\node-win-x64 目录完整
|
||||
echo [ERROR] Node.js not found
|
||||
echo Please ensure runtime\node-win-x64 directory is complete
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
for /f "tokens=*" %%v in ('"%NODE_BIN%" --version') do set NODE_VER=%%v
|
||||
echo Node.js 版本: %NODE_VER%
|
||||
echo Node.js: %NODE_VER%
|
||||
echo.
|
||||
|
||||
set "PATH=%NODE_DIR%;%NODE_DIR%\node_modules\.bin;%PATH%"
|
||||
|
||||
if not exist "%OPENCLAW_DIR%\node_modules" (
|
||||
echo 首次运行,正在安装依赖...
|
||||
echo (使用淘宝镜像,请稍等)
|
||||
echo First run - installing dependencies...
|
||||
echo Using China mirror, please wait...
|
||||
echo.
|
||||
cd /d "%OPENCLAW_DIR%"
|
||||
call "%NPM_BIN%" install --registry=https://registry.npmmirror.com
|
||||
echo.
|
||||
echo 依赖安装完成!
|
||||
echo Dependencies installed!
|
||||
echo.
|
||||
)
|
||||
|
||||
if not exist "%OPENCLAW_DIR%\dist" (
|
||||
echo 首次运行,正在构建...
|
||||
echo First run - building...
|
||||
cd /d "%OPENCLAW_DIR%"
|
||||
call "%NPM_BIN%" run build
|
||||
echo.
|
||||
@@ -60,29 +60,29 @@ if not exist "%OPENCLAW_DIR%\dist" (
|
||||
|
||||
cd /d "%OPENCLAW_DIR%"
|
||||
|
||||
REM 首次运行:自动写入最小配置(跳过 onboard)
|
||||
REM First run: auto-create minimal config (skip onboard)
|
||||
if not exist "%PORTABLE_CONFIG_PATH%" (
|
||||
echo 首次运行,正在初始化配置...
|
||||
echo First run - initializing config...
|
||||
if not exist "%PORTABLE_STATE_DIR%" mkdir "%PORTABLE_STATE_DIR%"
|
||||
echo {"gateway":{"mode":"local","auth":{"token":"uclaw"}}} > "%PORTABLE_CONFIG_PATH%"
|
||||
echo 配置已初始化
|
||||
echo Config initialized
|
||||
echo.
|
||||
)
|
||||
|
||||
echo 正在启动 OpenClaw...
|
||||
echo 此窗口不要关闭,关闭后服务会停止。
|
||||
echo Starting OpenClaw...
|
||||
echo DO NOT close this window!
|
||||
echo.
|
||||
echo ────────────────────────────────────
|
||||
echo 启动后浏览器会自动打开控制台
|
||||
echo 首次使用请在控制台中配置:
|
||||
echo 1. 设置 AI 模型(DeepSeek / Kimi / 通义千问)
|
||||
echo 2. 接入聊天平台(QQ / 飞书 / 钉钉)
|
||||
echo ────────────────────────────────────
|
||||
echo ----------------------------------------
|
||||
echo Browser will open automatically.
|
||||
echo First time setup in web console:
|
||||
echo 1. Choose AI model (DeepSeek / Kimi / Qwen)
|
||||
echo 2. Connect chat platform (QQ / Feishu / DingTalk)
|
||||
echo ----------------------------------------
|
||||
echo.
|
||||
|
||||
start "" http://127.0.0.1:18789/#token=uclaw
|
||||
"%NODE_BIN%" openclaw.mjs gateway run --allow-unconfigured --force
|
||||
|
||||
echo.
|
||||
echo OpenClaw 已退出。拔掉 U 盘后,本次便携运行就会结束。
|
||||
echo OpenClaw stopped. You can safely remove the USB drive.
|
||||
pause
|
||||
|
||||
79
uclaw-scripts/Windows-安装并启动.bat
Normal file
79
uclaw-scripts/Windows-安装并启动.bat
Normal file
@@ -0,0 +1,79 @@
|
||||
@echo off
|
||||
chcp 65001 >nul 2>&1
|
||||
title U-Claw - Install and Launch
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo U-Claw v1.1
|
||||
echo Install and Launch (Windows)
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
set "USB_DIR=%~dp0"
|
||||
set "ARCHIVE=%USB_DIR%U-Claw.tar.gz"
|
||||
set "INSTALL_DIR=%USERPROFILE%\U-Claw"
|
||||
|
||||
REM Check archive
|
||||
if not exist "%ARCHIVE%" (
|
||||
echo [ERROR] U-Claw.tar.gz not found
|
||||
echo Please ensure this script and the archive are in the same directory
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM Check if already installed
|
||||
if exist "%INSTALL_DIR%\openclaw\node_modules" (
|
||||
echo U-Claw already installed at: %INSTALL_DIR%
|
||||
echo.
|
||||
echo [1] Launch directly (skip extract)
|
||||
echo [2] Reinstall (overwrite)
|
||||
echo.
|
||||
set /p choice=" Choose [1/2, default 1]: "
|
||||
if "%choice%"=="2" (
|
||||
echo.
|
||||
echo Reinstalling...
|
||||
rmdir /s /q "%INSTALL_DIR%" >nul 2>&1
|
||||
) else (
|
||||
echo.
|
||||
echo Launching...
|
||||
goto :start
|
||||
)
|
||||
)
|
||||
|
||||
REM Extract
|
||||
echo.
|
||||
echo Extracting U-Claw to %INSTALL_DIR% ...
|
||||
echo This may take 1-2 minutes...
|
||||
echo.
|
||||
|
||||
where tar >nul 2>&1
|
||||
if %errorlevel%==0 (
|
||||
cd /d "%USERPROFILE%"
|
||||
tar xzf "%ARCHIVE%"
|
||||
if %errorlevel% neq 0 (
|
||||
echo Extract failed! Please extract U-Claw.tar.gz manually
|
||||
echo using 7-Zip or WinRAR to %USERPROFILE%
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
) else (
|
||||
echo tar command not available on this Windows version
|
||||
echo Please extract U-Claw.tar.gz manually using 7-Zip or WinRAR
|
||||
echo Extract to: %USERPROFILE%
|
||||
echo.
|
||||
echo Then run: %INSTALL_DIR%\Windows-从U盘启动.bat
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo Extract complete!
|
||||
echo.
|
||||
|
||||
:start
|
||||
REM Launch OpenClaw
|
||||
echo Starting OpenClaw...
|
||||
echo.
|
||||
|
||||
cd /d "%INSTALL_DIR%"
|
||||
call "%INSTALL_DIR%\Windows-从U盘启动.bat"
|
||||
Reference in New Issue
Block a user