47 lines
1.3 KiB
Plaintext
47 lines
1.3 KiB
Plaintext
|
|
#!/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 "$@"
|