71 lines
2.1 KiB
Bash
71 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
# 合并 admin 包和 amzn2023 节点包
|
|
# 无需手动解压/复制/改名
|
|
set -e
|
|
|
|
ROOT=$(cd "$(dirname "$0")/.." && pwd)
|
|
|
|
lookup_version() {
|
|
local file=$1
|
|
local re='Version[ ]+=[ ]+"([0-9.]+)"'
|
|
local data=$(cat "$file")
|
|
if [[ $data =~ $re ]]; then
|
|
echo "${BASH_REMATCH[1]}"
|
|
else
|
|
echo "error: cannot extract version from $file" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
ADMIN_VER=$(lookup_version "$ROOT/EdgeAdmin/internal/const/const.go")
|
|
NODE_VER=$(lookup_version "$ROOT/EdgeNode/internal/const/const.go")
|
|
DNS_VER=$(lookup_version "$ROOT/EdgeDNS/internal/const/const.go")
|
|
HTTPDNS_VER=$(lookup_version "$ROOT/EdgeHttpDNS/internal/const/const.go")
|
|
|
|
ADMIN_ZIP="$ROOT/EdgeAdmin/dist/edge-admin-linux-amd64-v${ADMIN_VER}.zip"
|
|
AMZN_NODE="$ROOT/EdgeNode/dist/edge-node-linux-amd64-amzn2023-v${NODE_VER}.zip"
|
|
AMZN_DNS="$ROOT/EdgeDNS/dist/edge-dns-linux-amd64-amzn2023-v${DNS_VER}.zip"
|
|
AMZN_HTTPDNS="$ROOT/EdgeHttpDNS/dist/edge-httpdns-linux-amd64-amzn2023-v${HTTPDNS_VER}.zip"
|
|
|
|
echo "Checking required files ..."
|
|
MISSING=0
|
|
for f in "$ADMIN_ZIP" "$AMZN_NODE" "$AMZN_DNS" "$AMZN_HTTPDNS"; do
|
|
if [ ! -f "$f" ]; then
|
|
echo " [MISSING] $f"
|
|
MISSING=1
|
|
else
|
|
echo " [OK] $(basename "$f")"
|
|
fi
|
|
done
|
|
if [ "$MISSING" -ne 0 ]; then
|
|
echo ""
|
|
echo "ERROR: Missing files. Build both Ubuntu and amzn2023 packages first."
|
|
exit 1
|
|
fi
|
|
|
|
WORK_DIR="$ROOT/EdgeAdmin/dist"
|
|
cd "$WORK_DIR"
|
|
|
|
echo ""
|
|
echo "Extracting admin package ..."
|
|
rm -rf edge-admin
|
|
unzip -q "$(basename "$ADMIN_ZIP")"
|
|
|
|
DEPLOY_DIR="edge-admin/edge-api/deploy"
|
|
echo "Injecting amzn2023 packages ..."
|
|
cp "$AMZN_NODE" "$DEPLOY_DIR/edge-node-linux-amd64-amzn2023-v${NODE_VER}.zip"
|
|
cp "$AMZN_DNS" "$DEPLOY_DIR/edge-dns-linux-amd64-amzn2023-v${DNS_VER}.zip"
|
|
cp "$AMZN_HTTPDNS" "$DEPLOY_DIR/edge-httpdns-linux-amd64-amzn2023-v${HTTPDNS_VER}.zip"
|
|
|
|
echo "Re-packaging ..."
|
|
FINAL_ZIP="edge-admin-linux-amd64-v${ADMIN_VER}.zip"
|
|
rm -f "$FINAL_ZIP"
|
|
zip -r -X -q "$FINAL_ZIP" edge-admin/
|
|
rm -rf edge-admin
|
|
|
|
SIZE=$(du -h "$FINAL_ZIP" | cut -f1)
|
|
echo ""
|
|
echo "==============================="
|
|
echo " Done! → $WORK_DIR/$FINAL_ZIP ($SIZE)"
|
|
echo "==============================="
|