Files
cpa-plugin/scripts/package.sh
T

42 lines
1.2 KiB
Bash
Executable File

#!/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"