- 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>
53 lines
1.9 KiB
Bash
Executable File
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!)"
|