Centralize release tool invocation
This commit is contained in:
46
scripts/releasekit
Executable file
46
scripts/releasekit
Executable file
@@ -0,0 +1,46 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
usage() {
|
||||
printf '%s\n' 'usage: releasekit MODULE {publish|check|deliver} [ARGS...] | releasekit {version|publication-attempts|reconcile} [ARGS...]' >&2
|
||||
exit 2
|
||||
}
|
||||
|
||||
[ "$#" -ge 1 ] || usage
|
||||
case "$1" in
|
||||
core) module_dir=.; profile=releasekit.json ;;
|
||||
ckconfig) module_dir=integrations/ckconfig; profile=integrations/ckconfig/releasekit.json ;;
|
||||
ckprompt) module_dir=integrations/ckprompt; profile=integrations/ckprompt/releasekit.json ;;
|
||||
version|publication-attempts|reconcile) module_dir= ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
|
||||
if [ -n "$module_dir" ]; then
|
||||
shift
|
||||
[ "$#" -ge 1 ] || usage
|
||||
operation=$1
|
||||
shift
|
||||
case "$operation" in
|
||||
publish|check|deliver) ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
root=$(CDPATH= cd "$(dirname "$0")/.." && pwd)
|
||||
CDPATH= cd "$root"
|
||||
GOWORK=off
|
||||
GOTOOLCHAIN=local
|
||||
export GOWORK GOTOOLCHAIN
|
||||
GOOS=$(go env GOHOSTOS)
|
||||
GOARCH=$(go env GOHOSTARCH)
|
||||
GOFLAGS="$(go env GOFLAGS) -mod=readonly"
|
||||
export GOOS GOARCH GOFLAGS
|
||||
|
||||
if [ -n "$module_dir" ]; then
|
||||
if [ "$operation" = publish ]; then
|
||||
set -- "$operation" --repo "$root" --config "$root/$profile" --expected-module "$module_dir" "$@"
|
||||
else
|
||||
set -- "$operation" --repo "$root" --config "$root/$profile" "$@"
|
||||
fi
|
||||
fi
|
||||
exec go tool go.maximumdirect.net/releasekit/cmd/releasekit "$@"
|
||||
Reference in New Issue
Block a user