#!/bin/bash set -e # 定义路径 SOURCE_MAIN="../bash_go_service/main" SOURCE_CONFIG="../bash_go_service/config/config.yaml" SOURCE_INSTALL_SCRIPT="../bash_go_service/install_product_id_generator.sh" SOURCE_UNINSTALL_SCRIPT="../bash_go_service/uninstall_product_id_generator.sh" SOURCE_REG_SCRIPT="../bash_go_service/generate_bash_product_id.sh" SOURCE_INTERCEPT_SO="../execve_hook/build/intercept.so" DEST_DIST="./dist" DEST_LOGS="$DEST_DIST/logs" DEST_CONFIG="$DEST_DIST/config" DEST_SCRIPT="./script" DEST_INSTALL_SCRIPT="$DEST_SCRIPT/install_product_id_generator.sh" DEST_UNINSTALL_SCRIPT="$DEST_SCRIPT/uninstall_product_id_generator.sh" DEST_REG_SCRIPT="$DEST_SCRIPT/generate_bash_product_id.sh" # 检查 main 是否存在且为可执行文件 if [[ ! -x "$SOURCE_MAIN" ]]; then echo "错误:$SOURCE_MAIN 不存在或不可执行" exit 1 fi # 创建 dist 目录 mkdir -p "$DEST_DIST" echo "创建 dist 目录:$DEST_DIST" # 拷贝 main cp "$SOURCE_MAIN" "$DEST_DIST/" echo "已复制 main 到 $DEST_DIST/" # 创建 logs 和 config 目录(如果不存在) mkdir -p "$DEST_LOGS" mkdir -p "$DEST_CONFIG" echo "确保 logs 和 config 目录存在" # 拷贝 config.yaml 如果不存在 if [[ ! -f "$DEST_CONFIG/config.yaml" ]]; then if [[ -r "$SOURCE_CONFIG" ]]; then cp "$SOURCE_CONFIG" "$DEST_CONFIG/" echo "已复制 config.yaml 到 $DEST_CONFIG/" else echo "错误:$SOURCE_CONFIG 不可读取或不存在" exit 1 fi else echo "config.yaml 已存在,跳过复制" fi # 创建 script 目录 mkdir -p "$DEST_SCRIPT" # 拷贝 install_product_id_generator.sh(强制覆盖) if [[ -r "$SOURCE_INSTALL_SCRIPT" ]]; then cp -f "$SOURCE_INSTALL_SCRIPT" "$DEST_INSTALL_SCRIPT" echo "已复制 install_product_id_generator.sh 到 $DEST_SCRIPT/" else echo "错误:$SOURCE_INSTALL_SCRIPT 不可读取或不存在" exit 1 fi # 拷贝 uninstall_product_id_generator.sh(强制覆盖) if [[ -r "$SOURCE_UNINSTALL_SCRIPT" ]]; then cp -f "$SOURCE_UNINSTALL_SCRIPT" "$DEST_UNINSTALL_SCRIPT" echo "已复制 uninstall_product_id_generator.sh 到 $DEST_SCRIPT/" else echo "错误:$SOURCE_UNINSTALL_SCRIPT 不可读取或不存在" exit 1 fi # 拷贝 generate_bash_product_id.sh(强制覆盖) if [[ -r "$SOURCE_REG_SCRIPT" ]]; then cp -f "$SOURCE_REG_SCRIPT" "$DEST_REG_SCRIPT" echo "已复制 generate_bash_product_id.sh 到 $DEST_SCRIPT/" else echo "错误:$SOURCE_REG_SCRIPT 不可读取或不存在" exit 1 fi # 拷贝 intercept.so if [[ -r "$SOURCE_INTERCEPT_SO" ]]; then cp "$SOURCE_INTERCEPT_SO" "$DEST_DIST/" echo "已复制 intercept.so 到 $DEST_DIST/" else echo "错误:$SOURCE_INTERCEPT_SO 不可读取或不存在" exit 1 fi echo "✅ 全部操作完成!"