43 lines
1.2 KiB
Bash
Executable File
43 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"
|
|
cpa_revision="$(git -C "$root/.externals/CLIProxyAPI" rev-parse HEAD)"
|
|
|
|
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=${cpa_revision}+usage-context+usage-identity+request-lifecycle-cancel" \
|
|
>"$package_dir/VERSION.txt"
|
|
|
|
archive="$root/dist/$name.tar.gz"
|
|
tar -czf "$archive" -C "$stage" "$name"
|
|
(cd "$root/dist" && sha256sum "$name.tar.gz" >"$name.tar.gz.sha256")
|
|
|
|
echo "Packaged: $archive"
|
|
echo "Checksum: $archive.sha256"
|