134 lines
3.1 KiB
Bash
Executable File
134 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
||
# NAC模块升级机制集成脚本
|
||
# 为所有NAC模块添加升级框架依赖
|
||
|
||
set -e
|
||
|
||
echo "===== NAC模块升级机制集成脚本 ====="
|
||
echo "开始时间: $(date)"
|
||
echo ""
|
||
|
||
# 模块列表
|
||
MODULES=(
|
||
"nac-acc-1400"
|
||
"nac-acc-1410"
|
||
"nac-acc-1594"
|
||
"nac-acc-1643"
|
||
"nac-acc-1644"
|
||
"nac-ai-compliance"
|
||
"nac-ai-valuation"
|
||
"nac-api-server"
|
||
"nac-bridge-contracts"
|
||
"nac-bridge-ethereum"
|
||
"nac-cbpp"
|
||
"nac-cbpp-l0"
|
||
"nac-cbpp-l1"
|
||
"nac-cee"
|
||
"nac-cli"
|
||
"nac-constitution-clauses"
|
||
"nac-constitution-macros"
|
||
"nac-constitution-state"
|
||
"nac-contract-deployer"
|
||
"nac-cross-chain-bridge"
|
||
"nac-csnp"
|
||
"nac-csnp-l0"
|
||
"nac-csnp-l1"
|
||
"nac-deploy"
|
||
"nac-ftan"
|
||
"nac-integration-tests"
|
||
"nac-ma-rcm"
|
||
"nac-monitor"
|
||
"nac-nrpc"
|
||
"nac-nrpc4"
|
||
"nac-nvm"
|
||
"nac-rwa-exchange"
|
||
"nac-sdk"
|
||
"nac-serde"
|
||
"nac-test"
|
||
"nac-uca"
|
||
"nac-udm"
|
||
"nac-vision-cli"
|
||
"nac-vision-wallet"
|
||
"nac-wallet-cli"
|
||
"nac-wallet-core"
|
||
"nac-webdev-init"
|
||
)
|
||
|
||
# 计数器
|
||
TOTAL=${#MODULES[@]}
|
||
SUCCESS=0
|
||
FAILED=0
|
||
SKIPPED=0
|
||
|
||
echo "总共需要处理 $TOTAL 个模块"
|
||
echo ""
|
||
|
||
for MODULE in "${MODULES[@]}"; do
|
||
echo "处理模块: $MODULE"
|
||
|
||
# 检查模块是否存在
|
||
if [ ! -d "$MODULE" ]; then
|
||
echo " ⚠️ 模块不存在,跳过"
|
||
((SKIPPED++))
|
||
continue
|
||
fi
|
||
|
||
# 检查是否有Cargo.toml
|
||
if [ ! -f "$MODULE/Cargo.toml" ]; then
|
||
echo " ⚠️ 没有Cargo.toml,跳过"
|
||
((SKIPPED++))
|
||
continue
|
||
fi
|
||
|
||
# 添加依赖
|
||
echo " 📦 添加nac-upgrade-framework依赖..."
|
||
if grep -q "nac-upgrade-framework" "$MODULE/Cargo.toml"; then
|
||
echo " ✅ 依赖已存在"
|
||
else
|
||
# 在[dependencies]后添加依赖
|
||
if grep -q "^\[dependencies\]" "$MODULE/Cargo.toml"; then
|
||
sed -i '/^\[dependencies\]/a nac-upgrade-framework = { path = "../nac-upgrade-framework" }' "$MODULE/Cargo.toml"
|
||
echo " ✅ 依赖已添加"
|
||
else
|
||
echo " ⚠️ 没有[dependencies]节,跳过"
|
||
((SKIPPED++))
|
||
continue
|
||
fi
|
||
fi
|
||
|
||
# 创建upgrade.rs文件(如果不存在)
|
||
if [ ! -f "$MODULE/src/upgrade.rs" ]; then
|
||
echo " 📝 创建upgrade.rs..."
|
||
cat > "$MODULE/src/upgrade.rs" << 'EOF'
|
||
//! 模块升级实现
|
||
|
||
use nac_upgrade_framework::{
|
||
traits::Upgradeable, UpgradeData, UpgradeRecord, Version, Result, UpgradeError,
|
||
};
|
||
|
||
// 注意:需要在主结构体中添加以下字段:
|
||
// - version: Version
|
||
// - upgrade_history: Vec<UpgradeRecord>
|
||
//
|
||
// 并实现 do_upgrade 方法来执行实际的升级逻辑
|
||
|
||
// 使用宏快速实现Upgradeable trait:
|
||
// nac_upgrade_framework::impl_upgradeable!(YourStruct, "module-name", Version::new(1, 0, 0));
|
||
EOF
|
||
echo " ✅ upgrade.rs已创建"
|
||
else
|
||
echo " ℹ️ upgrade.rs已存在"
|
||
fi
|
||
|
||
((SUCCESS++))
|
||
echo " ✅ 完成"
|
||
echo ""
|
||
done
|
||
|
||
echo "===== 集成完成 ====="
|
||
echo "成功: $SUCCESS"
|
||
echo "失败: $FAILED"
|
||
echo "跳过: $SKIPPED"
|
||
echo "总计: $TOTAL"
|
||
echo "完成时间: $(date)"
|