#!/usr/bin/env bash # 生成可交付给客户的 client 包(不含开发者私密配置) # 用法: ./package_client.sh <客户名称> [输出目录] # # 示例: # ./package_client.sh customer-A /tmp/client-pkg # # 输出: # /tmp/client-pkg/customer-A/ # install.env.example # 已填入 DEVICE_ID 等客户信息 # README.md # 含客户专属说明 # bin/ # 与原 client/bin 一致 # install_plantai.sh # 与原 client/install_plantai.sh 一致 # phase_d_tpm.sh # 与原一致 # phase_d_swtpm_test.sh # 与原一致 set -euo pipefail CLIENT_NAME="${1:?用法: $0 <客户名称> [输出目录]}" OUT_DIR="${2:-/tmp/client-pkg/$CLIENT_NAME}" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" mkdir -p "$OUT_DIR" # 复制不可变逻辑 cp -a "$SCRIPT_DIR/bin" "$OUT_DIR/bin" cp -a "$SCRIPT_DIR/install_plantai.sh" "$OUT_DIR/" cp -a "$SCRIPT_DIR/phase_d_tpm.sh" "$OUT_DIR/" cp -a "$SCRIPT_DIR/phase_d_swtpm_test.sh" "$OUT_DIR/" # 生成客户专属 install.env.example DEVICE_ID_SUGGEST="${CLIENT_NAME}-$(hostname)" sed "s/DEVICE_ID=.*/DEVICE_ID=$DEVICE_ID_SUGGEST/" \ "$SCRIPT_DIR/install.env.example" > "$OUT_DIR/install.env.example" # 生成客户专属 README cp "$SCRIPT_DIR/README.md" "$OUT_DIR/README.md" cat >> "$OUT_DIR/README.md" </dev/null || echo "待确认") - **生成日期**: $(date '+%Y-%m-%d %H:%M') EOF echo "✅ 客户交付包已生成: $OUT_DIR" echo "" echo "下一步:" echo " 1. 编辑 $OUT_DIR/install.env.example → 填入客户专属值后另存为 install.env" echo " 2. 将 plantai-rag-release-.tar.gz 放到客户机的 release/ 目录" echo " 3. 发送 $OUT_DIR 给客户(不含 install.env!)"