Pulse/scripts/release_ldflags.sh
2026-04-22 02:00:29 +01:00

97 lines
2.5 KiB
Bash
Executable file

#!/bin/sh
set -eu
usage() {
cat >&2 <<'EOF'
usage: release_ldflags.sh <server|agent> --version <version> [--build-time <ts>] [--git-commit <sha>] [--license-public-key <base64>] [--update-public-keys <csv>]
EOF
exit 1
}
if [ "$#" -lt 1 ]; then
usage
fi
mode="$1"
shift
version=""
build_time="unknown"
git_commit="unknown"
license_public_key=""
update_public_keys=""
while [ "$#" -gt 0 ]; do
case "$1" in
--version)
[ "$#" -ge 2 ] || usage
version="$2"
shift 2
;;
--build-time)
[ "$#" -ge 2 ] || usage
build_time="$2"
shift 2
;;
--git-commit)
[ "$#" -ge 2 ] || usage
git_commit="$2"
shift 2
;;
--license-public-key)
[ "$#" -ge 2 ] || usage
license_public_key="$2"
shift 2
;;
--update-public-keys)
[ "$#" -ge 2 ] || usage
update_public_keys="$2"
shift 2
;;
*)
usage
;;
esac
done
if [ -z "$version" ]; then
usage
fi
case "$version" in
v*)
normalized_version="$version"
;;
*)
normalized_version="v$version"
;;
esac
ldflags="-s -w -X main.Version=${normalized_version}"
case "$mode" in
server)
ldflags="${ldflags} -X main.BuildTime=${build_time}"
ldflags="${ldflags} -X main.GitCommit=${git_commit}"
ldflags="${ldflags} -X github.com/rcourtman/pulse-go-rewrite/internal/updates.BuildVersion=${normalized_version}"
ldflags="${ldflags} -X github.com/rcourtman/pulse-go-rewrite/internal/dockeragent.Version=${normalized_version}"
if [ -n "$license_public_key" ]; then
ldflags="${ldflags} -X github.com/rcourtman/pulse-go-rewrite/pkg/licensing.EmbeddedPublicKey=${license_public_key}"
ldflags="${ldflags} -X github.com/rcourtman/pulse-go-rewrite/internal/license.EmbeddedPublicKey=${license_public_key}"
fi
if [ -n "$update_public_keys" ]; then
ldflags="${ldflags} -X github.com/rcourtman/pulse-go-rewrite/internal/updatesignature.EmbeddedTrustedPublicKeys=${update_public_keys}"
fi
;;
agent)
if [ -n "$update_public_keys" ]; then
ldflags="${ldflags} -X github.com/rcourtman/pulse-go-rewrite/internal/updatesignature.EmbeddedTrustedPublicKeys=${update_public_keys}"
fi
;;
*)
usage
;;
esac
printf '%s\n' "$ldflags"