@ijfw/install 1.2.10 → 1.3.0
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.
- package/README.md +5 -3
- package/dist/install.js +1884 -80
- package/package.json +1 -1
- package/src/install.ps1 +8 -15
package/package.json
CHANGED
package/src/install.ps1
CHANGED
|
@@ -50,8 +50,8 @@ function Invoke-Preflight {
|
|
|
50
50
|
if (-not $node -or ([int]($node -replace 'v(\d+)\..*','$1') -lt 18)) {
|
|
51
51
|
$issues += "Node 18+ unlocks IJFW (found $node). Grab it from https://nodejs.org and we'll pick up where you left off."
|
|
52
52
|
}
|
|
53
|
-
if (-not (Test-Command git)) { $issues += "
|
|
54
|
-
|
|
53
|
+
if (-not (Test-Command git)) { $issues += "IJFW needs git (used to clone the source repo). Install: winget install --id Git.Git -e --source winget" }
|
|
54
|
+
# Bash is no longer required (v1.3.0 -- installer is Node-native).
|
|
55
55
|
return $issues
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -136,25 +136,18 @@ function Invoke-CloneOrPull($target, $branch) {
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
function Invoke-InstallScript($target) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
$
|
|
142
|
-
if (-not $
|
|
143
|
-
# Propagate IJFW_HOME into the bash sub-call so a custom -Dir target lands
|
|
144
|
-
# platform configs / sentinels under the user's chosen tree instead of the
|
|
145
|
-
# default ~/.ijfw. Without this, .\install.ps1 -Dir D:\custom would scribble
|
|
146
|
-
# MCP entries into the user's real ~/.codex / ~/.gemini / ~/.claude pointing
|
|
147
|
-
# at the scratch dir.
|
|
139
|
+
# v1.3.0: hand off to the Node-native installer (installer/src/install.js).
|
|
140
|
+
# No more bash dependency. Identical code path on every platform.
|
|
141
|
+
$entry = Join-Path $target "installer\src\install.js"
|
|
142
|
+
if (-not (Test-Path $entry)) { throw "The installer entry is not at $entry. Run the full install from a fresh clone." }
|
|
148
143
|
$priorIjfwHome = $env:IJFW_HOME
|
|
149
144
|
$env:IJFW_HOME = $target
|
|
150
145
|
Push-Location $target
|
|
151
146
|
try {
|
|
152
147
|
$env:IJFW_NONINTERACTIVE = if ($env:CI -or $Yes) { "1" } else { "" }
|
|
153
|
-
# Let the PS wrapper own the final closer so Merge-Marketplace output
|
|
154
|
-
# lands above it. Bash skips its "Full log" line when this is set.
|
|
155
148
|
$env:IJFW_SKIP_CLOSER = "1"
|
|
156
|
-
& $
|
|
157
|
-
if ($LASTEXITCODE -ne 0) { throw "
|
|
149
|
+
& node $entry
|
|
150
|
+
if ($LASTEXITCODE -ne 0) { throw "Node installer exited $LASTEXITCODE." }
|
|
158
151
|
} finally {
|
|
159
152
|
Pop-Location
|
|
160
153
|
Remove-Item Env:\IJFW_SKIP_CLOSER -ErrorAction SilentlyContinue
|