#!/usr/bin/env bash set -euo pipefail # Installs @neuledge/context globally at a pinned version. # Usage: setup-neuledge-context.sh [VERSION] # VERSION — npm version string (default: 1.2.0) # Idempotent: skips install if already at the target version. TARGET_VERSION="${1:-1.2.0}" current_version() { context --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1 || echo "" } CURRENT="$(current_version)" if [ "$CURRENT" = "$TARGET_VERSION" ]; then echo "Already at @neuledge/context@${TARGET_VERSION} — nothing to do." exit 0 fi if [ -n "$CURRENT" ]; then echo "Upgrading @neuledge/context from ${CURRENT} to ${TARGET_VERSION}..." else echo "Installing @neuledge/context@${TARGET_VERSION}..." fi npm install -g "@neuledge/context@${TARGET_VERSION}" INSTALLED="$(current_version)" if [ "$INSTALLED" = "$TARGET_VERSION" ]; then echo "Done: @neuledge/context@${TARGET_VERSION} installed." else echo "Error: expected version ${TARGET_VERSION} but got '${INSTALLED}'" >&2 exit 1 fi