#!/usr/bin/env bash set -Eeuo pipefail # 在我方受控构建机生成一次性的 shunfeng runtime 引导包,不包含业务镜像和源码。 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ISOLATED_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)" EMP_ROOT="${EMP_ROOT:-}" DIST_DIR="${DIST_DIR:-$ISOLATED_DIR/dist}" BUILD_TIME="${BUILD_TIME:-$(date '+%Y%m%d%H%M%S')}" PACKAGE_NAME="${PACKAGE_NAME:-emp-shunfeng-runtime-bootstrap-$BUILD_TIME}" PACKAGE_DIR="$DIST_DIR/$PACKAGE_NAME" PACKAGE_ARCHIVE="$DIST_DIR/$PACKAGE_NAME.tar.gz" die() { echo "ERROR: $*" >&2 exit 1 } [[ -n "$EMP_ROOT" ]] || die "set EMP_ROOT to the directory containing emp_server" [[ -f "$EMP_ROOT/emp_server/.env.example" ]] || die "missing $EMP_ROOT/emp_server/.env.example" [[ ! -e "$PACKAGE_DIR" && ! -e "$PACKAGE_ARCHIVE" ]] || die "package output already exists: $PACKAGE_NAME" mkdir -p "$PACKAGE_DIR" cp "$SCRIPT_DIR/docker-compose.yml" "$PACKAGE_DIR/docker-compose.yml" cp "$SCRIPT_DIR/release.env.example" "$PACKAGE_DIR/release.env.example" cp "$SCRIPT_DIR/install-runtime.sh" "$PACKAGE_DIR/install-runtime.sh" cp "$SCRIPT_DIR/README.md" "$PACKAGE_DIR/README.md" cp "$ISOLATED_DIR/deploy-from-url.sh" "$PACKAGE_DIR/deploy-from-url.sh" cp "$EMP_ROOT/emp_server/.env.example" "$PACKAGE_DIR/.env.example" chmod +x "$PACKAGE_DIR/install-runtime.sh" "$PACKAGE_DIR/deploy-from-url.sh" mkdir -p "$DIST_DIR" tar -czf "$PACKAGE_ARCHIVE" -C "$DIST_DIR" "$PACKAGE_NAME" echo "Runtime bootstrap package: $PACKAGE_ARCHIVE" if command -v sha256sum >/dev/null 2>&1; then sha256sum "$PACKAGE_ARCHIVE" fi