NAC_Blockchain/integrate_upgrade_mechanism.sh

134 lines
3.1 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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