mirror of
https://github.com/Ed94/pikuma_ps1.git
synced 2026-08-25 02:20:33 +00:00
44 lines
1.6 KiB
PowerShell
44 lines
1.6 KiB
PowerShell
# Package and install the local VS Code Insiders extensions under .vscode/.
|
|
# Usage:
|
|
# .\install_extensions.ps1
|
|
# .\install_extensions.ps1 -SkipPackage
|
|
|
|
param([switch] $SkipPackage)
|
|
|
|
$path_vscode = $PSScriptRoot
|
|
$code_insiders = "C:\apps\Microsoft VS Code Insiders\bin\code-insiders.cmd"
|
|
if (-not (test-path -literalpath $code_insiders)) {
|
|
$found = get-command code-insiders -erroraction silentlycontinue
|
|
if ($found) { $code_insiders = $found.source }
|
|
}
|
|
|
|
if (-not (test-path -literalpath $code_insiders)) { throw "code-insiders not found. Install VS Code Insiders or add it to PATH." }
|
|
|
|
$extensions = @(
|
|
(join-path $path_vscode "tape-atom-syntax"),
|
|
(join-path $path_vscode "cozy-and-windy")
|
|
)
|
|
|
|
foreach ($extension in $extensions) {
|
|
$package_json = join-path $extension "package.json"
|
|
if (-not (test-path -literalpath $package_json)) { throw "missing $package_json" }
|
|
|
|
$manifest = get-content -literalpath $package_json -raw | convertfrom-json
|
|
$vsix = join-path $extension ("{0}-{1}.vsix" -f $manifest.name, $manifest.version)
|
|
|
|
if (-not $SkipPackage) {
|
|
if (-not $manifest.scripts.package) { throw "$package_json has no scripts.package" }
|
|
write-host "packaging $($manifest.displayName) ($($manifest.name)@$($manifest.version))"
|
|
& npm --prefix $extension run package
|
|
if ($LASTEXITCODE -ne 0) { throw "npm run package failed for $extension" }
|
|
}
|
|
|
|
if (-not (test-path -literalpath $vsix)) { throw "missing $vsix" }
|
|
|
|
write-host "installing $vsix"
|
|
& $code_insiders --install-extension $vsix --force
|
|
if ($LASTEXITCODE -ne 0) { throw "install failed for $vsix" }
|
|
}
|
|
|
|
write-host "done. reload the Insiders window (Developer: Reload Window)."
|