#!/usr/bin/env bash # scripts/install-kyverno-json.sh — install the kj CLI (v1.25, REQ-294) # # Installs the kyverno-json CLI (`kj`) via `go install` (D-115). The # binary is a Go project — not a Python package. Cached via the Go # module cache. # # Usage: bash scripts/install-kyverno-json.sh # Exits 0 on success, 1 if Go is not installed, 2 if `kj version` fails. set -euo pipefail if ! command -v go >/dev/null 2>&1; then echo "ERROR: Go toolchain not found. Install Go (https://go.dev/dl/) first." >&2 echo " kyverno-json is a Go binary — `go install` is the upstream-blessed path (D-115)." >&2 exit 1 fi echo "Installing kyverno-json CLI (kj) via go install..." GOBIN="${GOBIN:-${HOME}/go/bin}" go install github.com/kyverno/kyverno-json/cmd/kj@latest if ! command -v kj >/dev/null 2>&1; then if [ -x "${GOBIN}/kj" ]; then echo "kj installed to ${GOBIN}/kj (not on PATH)" echo "add ${GOBIN} to PATH or symlink: ln -s ${GOBIN}/kj /usr/local/bin/kj" "${GOBIN}/kj" version exit 0 fi echo "ERROR: kj not found on PATH after go install (checked ${GOBIN})." >&2 exit 2 fi echo "kj installed:" kj version echo "DONE"