Files
commandkit/scripts/releasekit

47 lines
1.3 KiB
Bash
Executable File

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