#!/usr/bin/env bash set -euo pipefail ROOT=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd) LOCK="$ROOT/deploys/versions.lock.json" VERSION=${1:-$(awk -F'"' '/"version"[[:space:]]*:/ {print $4; exit}' "$LOCK")} [[ "$VERSION" =~ ^[0-9A-Za-z][0-9A-Za-z.+_-]*$ ]] || { echo 'invalid version' >&2; exit 2; } RELEASE_DIR="$ROOT/dist/release-$VERSION" STAGE="$ROOT/dist/package-$VERSION" ARCHIVE="$ROOT/deploys/packages/sip-go-agent-$VERSION-linux-amd64.tar.gz" rm -rf -- "$RELEASE_DIR" "$STAGE" "$ARCHIVE" "$ARCHIVE.sha256" RELEASE_VERSION="$VERSION" "$ROOT/scripts/build-release.sh" "$RELEASE_DIR" mkdir -p "$STAGE" "$(dirname -- "$ARCHIVE")" cp -a "$RELEASE_DIR/." "$STAGE/" mkdir -p "$STAGE/systemd" "$STAGE/env" "$STAGE/config" "$STAGE/cell" cp "$ROOT/deploys/install.sh" "$STAGE/install.sh" cp "$ROOT/deploys/cell/nonprod-call-evidence.sh" "$STAGE/cell/nonprod-call-evidence.sh" cp "$ROOT/deploys/systemd/"*.service "$STAGE/systemd/" cp "$ROOT/deploys/env/"*.env.example "$STAGE/env/" cp "$ROOT/deploys/config/agent-endpoints.example.json" "$STAGE/config/" cp "$LOCK" "$STAGE/versions.lock.json" chmod 0755 "$STAGE/install.sh" "$STAGE/cell/nonprod-call-evidence.sh" chmod 0644 "$STAGE/systemd/"*.service "$STAGE/env/"*.env.example "$STAGE/config/agent-endpoints.example.json" "$STAGE/versions.lock.json" ( cd "$STAGE" find . -type f ! -name package.SHA256SUMS -printf '%P\n' | sort | while IFS= read -r file; do sha256sum "$file" done > package.SHA256SUMS ) tar -C "$STAGE" -czf "$ARCHIVE" . ( cd "$(dirname -- "$ARCHIVE")" sha256sum "$(basename -- "$ARCHIVE")" > "$(basename -- "$ARCHIVE").sha256" ) rm -rf -- "$STAGE" printf 'package=%s\nchecksum=%s\n' "$ARCHIVE" "$ARCHIVE.sha256"