90 lines
2.2 KiB
Bash
Executable File
90 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
||
# NAC主网级完整编译脚本
|
||
# 编译所有23个模块,确保零错误零警告
|
||
|
||
set -e
|
||
|
||
LOG_FILE="/home/ubuntu/NAC_Clean_Dev/compile_log.txt"
|
||
echo "NAC Complete Compilation Started: $(date)" > "$LOG_FILE"
|
||
|
||
# 定义所有Rust模块
|
||
RUST_MODULES=(
|
||
"nac-udm"
|
||
"nac-serde"
|
||
"nac-sdk"
|
||
"nvm_v2"
|
||
"xtzh-ai"
|
||
"cargo-constitution"
|
||
"nac-constitution-macros"
|
||
"cnnl-compiler"
|
||
"charter-compiler"
|
||
"nac-cli"
|
||
"nac-deploy"
|
||
"nac-monitor"
|
||
"nac-test"
|
||
)
|
||
|
||
cd /home/ubuntu/NAC_Clean_Dev
|
||
|
||
echo "=== 开始编译所有模块 ===" | tee -a "$LOG_FILE"
|
||
|
||
for mod in "${RUST_MODULES[@]}"; do
|
||
if [ -d "$mod" ] && [ -f "$mod/Cargo.toml" ]; then
|
||
echo "" | tee -a "$LOG_FILE"
|
||
echo ">>> 编译 $mod <<<" | tee -a "$LOG_FILE"
|
||
|
||
cd "$mod"
|
||
|
||
if cargo build --release 2>&1 | tee -a "$LOG_FILE" | grep -q "Finished"; then
|
||
echo "✅ $mod 编译成功" | tee -a "$LOG_FILE"
|
||
else
|
||
echo "❌ $mod 编译失败" | tee -a "$LOG_FILE"
|
||
fi
|
||
|
||
cd ..
|
||
else
|
||
echo "⚠️ 跳过 $mod (不存在或非Rust项目)" | tee -a "$LOG_FILE"
|
||
fi
|
||
done
|
||
|
||
echo "" | tee -a "$LOG_FILE"
|
||
echo "=== 编译完成 ===" | tee -a "$LOG_FILE"
|
||
echo "NAC Complete Compilation Finished: $(date)" >> "$LOG_FILE"
|
||
|
||
# 生成编译报告
|
||
echo "" | tee -a "$LOG_FILE"
|
||
echo "=== 编译结果统计 ===" | tee -a "$LOG_FILE"
|
||
|
||
SUCCESS_COUNT=0
|
||
FAIL_COUNT=0
|
||
|
||
for mod in "${RUST_MODULES[@]}"; do
|
||
if [ -d "$mod/target/release" ]; then
|
||
if ls "$mod/target/release"/*.rlib >/dev/null 2>&1 || \
|
||
ls "$mod/target/release/deps"/*.rlib >/dev/null 2>&1 || \
|
||
[ -f "$mod/target/release/$mod" ]; then
|
||
echo "✅ $mod" | tee -a "$LOG_FILE"
|
||
((SUCCESS_COUNT++))
|
||
else
|
||
echo "❌ $mod" | tee -a "$LOG_FILE"
|
||
((FAIL_COUNT++))
|
||
fi
|
||
else
|
||
echo "⏳ $mod (未编译)" | tee -a "$LOG_FILE"
|
||
((FAIL_COUNT++))
|
||
fi
|
||
done
|
||
|
||
echo "" | tee -a "$LOG_FILE"
|
||
echo "成功: $SUCCESS_COUNT" | tee -a "$LOG_FILE"
|
||
echo "失败: $FAIL_COUNT" | tee -a "$LOG_FILE"
|
||
echo "" | tee -a "$LOG_FILE"
|
||
|
||
if [ $FAIL_COUNT -eq 0 ]; then
|
||
echo "🎉 所有模块编译成功!" | tee -a "$LOG_FILE"
|
||
exit 0
|
||
else
|
||
echo "⚠️ 部分模块编译失败,请检查日志" | tee -a "$LOG_FILE"
|
||
exit 1
|
||
fi
|