Files
jerryandClaude Fable 5 27946edc2b P0/M1: 收编 encryption-test 工具链入 tooling/
- legacy_plantai_server_package/: phase_a–f + compile_* + bin/plantai_admin.py
  + tools/(audit/elf_visibility/smoke/build_delivery_manifest) 完整基线
- legacy_docker_packager/: protected 形态参考
- crypto/client/: plantai_core.py(AES-GCM 原语) + install_plantai.sh 参考
- secrets/provision 严格排除(gitignore),入 git 前已脱敏清理
- LEGACY_MAPPING.md 记录源与改造方向

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 12:59:29 +08:00

53 lines
1.9 KiB
Bash
Executable File

#!/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" <<EOF
## 客户专属信息
- **客户名称**: $CLIENT_NAME
- **建议 DEVICE_ID**: $DEVICE_ID_SUGGEST
- **供应商版本**: $(cat "$SCRIPT_DIR/../server/plantai_server_package/out/"*/release/VERSION 2>/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-<VERSION>.tar.gz 放到客户机的 release/ 目录"
echo " 3. 发送 $OUT_DIR 给客户(不含 install.env!)"