#!/bin/bash # Hayaku HTTP守护进程安装脚本 set -e echo "安装Hayaku HTTP守护进程..." # 检查是否以root权限运行 if [ "$EUID" -ne 0 ]; then echo "请使用sudo运行此脚本" exit 1 fi # 获取脚本所在目录 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BINARY_NAME="InjectLib" PLIST_NAME="com.qiuchenly.hayaku.daemon.plist" # 检查二进制文件是否存在(在脚本同级目录) if [ ! -f "$SCRIPT_DIR/../InjectLib" ]; then echo "错误: 找不到 $BINARY_NAME 文件" echo "请先编译项目" exit 1 fi # 创建目录 mkdir -p "/usr/local/bin/QiuChenly" cp -r "$SCRIPT_DIR/../tool" "/usr/local/bin/QiuChenly/tool" cp -r "$SCRIPT_DIR/../config.json" "/usr/local/bin/QiuChenly/config.json" cp -r "$SCRIPT_DIR/../frontend" "/usr/local/bin/QiuChenly/frontend" # 复制二进制文件到系统目录 echo "复制二进制文件到 /usr/local/bin/QiuChenly/" cp "$SCRIPT_DIR/../InjectLib" "/usr/local/bin/QiuChenly/" chmod +x "/usr/local/bin/QiuChenly/$BINARY_NAME" xattr -cr "/usr/local/bin/QiuChenly/InjectLib" xattr -cr "/usr/local/bin/QiuChenly/tool" codesign -fs - --all-architectures "/usr/local/bin/QiuChenly/tool/CoreInject.dylib" # 复制plist文件到LaunchDaemons目录 echo "安装LaunchDaemon配置..." cp "$SCRIPT_DIR/$PLIST_NAME" "/Library/LaunchDaemons/" chmod 644 "/Library/LaunchDaemons/$PLIST_NAME" # 加载并启动服务 echo "启动服务..." launchctl load "/Library/LaunchDaemons/$PLIST_NAME" launchctl start "com.qiuchenly.hayaku.daemon" echo "安装完成!" echo "服务状态:" launchctl list | grep com.qiuchenly.hayaku.daemon || echo "服务未运行" echo "" echo "访问 http://localhost:15200 查看应用商店" echo "查看日志: tail -f /var/log/hayaku_daemon*"