@unbrained/pm-cli 2026.5.3 → 2026.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,8 @@
1
1
  param(
2
2
  [string]$Version = "latest",
3
3
  [string]$Prefix = "",
4
- [string]$PackageName = ""
4
+ [string]$PackageName = "",
5
+ [switch]$Repair
5
6
  )
6
7
 
7
8
  Set-StrictMode -Version Latest
@@ -62,6 +63,16 @@ if (Use-LiteralInstallSpec $PackageName) {
62
63
  } else {
63
64
  $installSpec = "$PackageName@$Version"
64
65
  }
66
+
67
+ if ($Repair) {
68
+ Write-Host "Repairing existing global pm install..."
69
+ $repairArgs = @("uninstall", "-g", "@unbrained/pm-cli")
70
+ if ($Prefix -ne "") {
71
+ $repairArgs += @("--prefix", $Prefix)
72
+ }
73
+ & npm @repairArgs *> $null
74
+ }
75
+
65
76
  Write-Host "Installing or updating $installSpec..."
66
77
  # --force keeps repeated installer runs idempotent when pm shim already exists.
67
78
  $npmArgs = @("install", "-g", "--force", $installSpec)
@@ -4,17 +4,19 @@ set -euo pipefail
4
4
  PACKAGE_NAME="${PM_CLI_PACKAGE:-@unbrained/pm-cli}"
5
5
  TARGET_VERSION="latest"
6
6
  PREFIX=""
7
+ REPAIR="false"
7
8
 
8
9
  usage() {
9
10
  cat <<'EOF'
10
11
  Install or update @unbrained/pm-cli globally via npm.
11
12
 
12
13
  Usage:
13
- bash scripts/install.sh [--version <tag>] [--prefix <dir>]
14
+ bash scripts/install.sh [--version <tag>] [--prefix <dir>] [--repair]
14
15
 
15
16
  Options:
16
17
  --version <tag> Package tag/version to install (default: latest)
17
18
  --prefix <dir> npm global prefix override
19
+ --repair Uninstall the registry package first to clear a stale global shim
18
20
  -h, --help Show this help message
19
21
  EOF
20
22
  }
@@ -68,6 +70,10 @@ while [[ $# -gt 0 ]]; do
68
70
  PREFIX="$2"
69
71
  shift 2
70
72
  ;;
73
+ --repair)
74
+ REPAIR="true"
75
+ shift
76
+ ;;
71
77
  -h|--help)
72
78
  usage
73
79
  exit 0
@@ -88,6 +94,16 @@ if is_literal_install_spec "$PACKAGE_NAME"; then
88
94
  else
89
95
  INSTALL_SPEC="${PACKAGE_NAME}@${TARGET_VERSION}"
90
96
  fi
97
+
98
+ if [[ "$REPAIR" == "true" ]]; then
99
+ REPAIR_CMD=(npm uninstall -g @unbrained/pm-cli)
100
+ if [[ -n "$PREFIX" ]]; then
101
+ REPAIR_CMD+=(--prefix "$PREFIX")
102
+ fi
103
+ echo "Repairing existing global pm install..."
104
+ "${REPAIR_CMD[@]}" >/dev/null 2>&1 || true
105
+ fi
106
+
91
107
  # Force is required for idempotent reruns when an existing pm shim already exists.
92
108
  INSTALL_CMD=(npm install -g --force "$INSTALL_SPEC")
93
109
  if [[ -n "$PREFIX" ]]; then