1#!/usr/bin/env pwsh
2$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
3
4$exe=""
5if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
6  # Fix case when both the Windows and Linux builds of Node
7  # are installed in the same directory
8  $exe=".exe"
9}
10$ret=0
11
12$nodeexe = "node$exe"
13$nodebin = $(Get-Command $nodeexe -ErrorAction SilentlyContinue -ErrorVariable F).Source
14if ($nodebin -eq $null) {
15  Write-Host "$nodeexe not found."
16  exit 1
17}
18$nodedir = $(New-Object -ComObject Scripting.FileSystemObject).GetFile("$nodebin").ParentFolder.Path
19
20$npmclijs="$nodedir/node_modules/npm/bin/npm-cli.js"
21$npmprefix=(& $nodeexe $npmclijs prefix -g)
22if ($LASTEXITCODE -ne 0) {
23  Write-Host "Could not determine Node.js install directory"
24  exit 1
25}
26$npmprefixclijs="$npmprefix/node_modules/npm/bin/npm-cli.js"
27
28# Support pipeline input
29if ($MyInvocation.ExpectingInput) {
30  $input | & $nodeexe $npmprefixclijs $args
31} else {
32  & $nodeexe $npmprefixclijs $args
33}
34$ret=$LASTEXITCODE
35exit $ret
36