#!/usr/bin/env bash set -euo pipefail root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" version="${1:-0.1.0}" target="linux_amd64" name="billing_${version}_${target}" artifact="$root/bin/billing.so" if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+([.-][0-9A-Za-z.-]+)?$ ]]; then echo "Invalid version: $version" >&2 exit 1 fi if [[ ! -f "$artifact" ]]; then echo "Missing $artifact; run scripts/build.sh first." >&2 exit 1 fi stage="$(mktemp -d)" trap 'rm -rf "$stage"' EXIT package_dir="$stage/$name" mkdir -p "$package_dir" "$root/dist" install -m 0755 "$artifact" "$package_dir/billing.so" install -m 0644 "$root/README.md" "$package_dir/README.md" install -m 0644 "$root/config.example.yaml" "$package_dir/config.example.yaml" printf '%s\n' \ "name=billing" \ "version=$version" \ "target=linux/amd64" \ "native_abi=1" \ "rpc_schema=4" \ "cliproxyapi_revision=ee2c494788f8a089c58f7ae9aa6ebd1b422211cb+usage-context+usage-identity+request-lifecycle-cancel" \ >"$package_dir/VERSION.txt" archive="$root/dist/$name.tar.gz" tar -czf "$archive" -C "$stage" "$name" sha256sum "$archive" >"$archive.sha256" echo "Packaged: $archive" echo "Checksum: $archive.sha256"