Files
PlantAI-rag-new/tooling/package_client.sh
T

53 lines
1.9 KiB
Bash
Raw Normal View History

#!/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!)"