Skip to content

Commit 38f66ed

Browse files
committed
add switch for updating stable tool version
1 parent 1a272ef commit 38f66ed

File tree

1 file changed

+57
-36
lines changed

1 file changed

+57
-36
lines changed

src/dotnet-interactive-vscode/update-versions.ps1

Lines changed: 57 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,61 @@
1-
function Update-VersionNumbers([string] $packageJsonPath, [string] $vscodeEngine) {
2-
Write-Host "Updating file '$packageJsonPath'"
3-
4-
# get tool feed url...
5-
$packageJsonContents = (Get-Content $packageJsonPath | Out-String | ConvertFrom-Json)
6-
$toolFeed = $packageJsonContents."contributes"."configuration"."properties"."dotnet-interactive.interactiveToolSource"."default"
7-
Write-Host "Using tool feed $toolFeed"
8-
9-
# ...find latest tool version...
10-
$serviceDefinition = Invoke-RestMethod -Uri $toolFeed
11-
$queryUrl = ($serviceDefinition."resources" | Where-Object -Property "@type" -Match ".*SearchQueryService.*" | Select-Object -First 1)."@id"
12-
$packageQuery = $queryUrl + "?q=Microsoft.dotnet-interactive"
13-
Write-Host "Using package query URL $packageQuery"
14-
$packageQueryResults = Invoke-RestMethod -Uri $packageQuery
15-
$newToolVersion = ($packageQueryResults."data" | Select-Object -First 1)."version"
16-
17-
# ...compare to existing...
18-
$existingToolVersion = $packageJsonContents."contributes"."configuration"."properties"."dotnet-interactive.minimumInteractiveToolVersion"."default"
19-
if ($existingToolVersion -eq $newToolVersion) {
20-
Write-Host "Existing tool version $existingToolVersion is up to date."
21-
}
22-
else {
23-
Write-Host "Updating tool version from $existingToolVersion to $newToolVersion"
24-
$packageJsonContents."contributes"."configuration"."properties"."dotnet-interactive.minimumInteractiveToolVersion"."default" = $newToolVersion
1+
[CmdletBinding(PositionalBinding = $false)]
2+
param (
3+
[switch]$updateAll = $false
4+
)
5+
6+
Set-StrictMode -version 2.0
7+
$ErrorActionPreference = "Stop"
8+
9+
try {
10+
11+
function Update-VersionNumbers([string] $packageJsonPath, [string] $vscodeEngine, [bool] $updateToolVersion) {
12+
Write-Host "Updating file '$packageJsonPath'"
13+
14+
$packageJsonContents = (Get-Content $packageJsonPath | Out-String | ConvertFrom-Json)
15+
16+
if ($updateToolVersion) {
17+
# get tool feed url...
18+
$toolFeed = $packageJsonContents."contributes"."configuration"."properties"."dotnet-interactive.interactiveToolSource"."default"
19+
Write-Host "Using tool feed $toolFeed"
20+
21+
# ...find latest tool version...
22+
$serviceDefinition = Invoke-RestMethod -Uri $toolFeed
23+
$queryUrl = ($serviceDefinition."resources" | Where-Object -Property "@type" -Match ".*SearchQueryService.*" | Select-Object -First 1)."@id"
24+
$packageQuery = $queryUrl + "?q=Microsoft.dotnet-interactive"
25+
Write-Host "Using package query URL $packageQuery"
26+
$packageQueryResults = Invoke-RestMethod -Uri $packageQuery
27+
$newToolVersion = ($packageQueryResults."data" | Select-Object -First 1)."version"
28+
29+
# ...compare to existing...
30+
$existingToolVersion = $packageJsonContents."contributes"."configuration"."properties"."dotnet-interactive.minimumInteractiveToolVersion"."default"
31+
if ($existingToolVersion -eq $newToolVersion) {
32+
Write-Host "Existing tool version $existingToolVersion is up to date."
33+
}
34+
else {
35+
Write-Host "Updating tool version from $existingToolVersion to $newToolVersion"
36+
$packageJsonContents."contributes"."configuration"."properties"."dotnet-interactive.minimumInteractiveToolVersion"."default" = $newToolVersion
37+
}
38+
}
39+
40+
# ...update target VS Code engine...
41+
Write-Host "Setting VS Code engine to $vscodeEngine"
42+
$packageJsonContents."engines"."vscode" = $vscodeEngine
43+
44+
# ...and save changes
45+
$packageJsonContents | ConvertTo-Json -depth 100 | Out-File $packageJsonPath
46+
Write-Host
2547
}
2648

27-
# ...update target VS Code engine...
28-
Write-Host "Setting VS Code engine to $vscodeEngine"
29-
$packageJsonContents."engines"."vscode" = $vscodeEngine
49+
$vsCodeStableVersion = (Get-Content "$PSScriptRoot\vscodeStableVersion.txt").Trim() # e.g., "1.53"
50+
$vsCodeVersionParts = $vsCodeStableVersion -split "\."
51+
$vsCodeInsidersVersion = $vsCodeVersionParts[0] + "." + ([int]$vsCodeVersionParts[1] + 1)
3052

31-
# ...and save changes
32-
$packageJsonContents | ConvertTo-Json -depth 100 | Out-File $packageJsonPath
33-
Write-Host
53+
Update-VersionNumbers -packageJsonPath "$PSScriptRoot\stable\package.json" -vscodeEngine "^$vsCodeStableVersion.0" -updateToolVersion $updateAll
54+
Update-VersionNumbers -packageJsonPath "$PSScriptRoot\insiders\package.json" -vscodeEngine "$vsCodeInsidersVersion.0-insider" -updateToolVersion $true
55+
}
56+
catch {
57+
Write-Host $_
58+
Write-Host $_.Exception
59+
Write-Host $_.ScriptStackTrace
60+
exit 1
3461
}
35-
36-
$vsCodeStableVersion = (Get-Content "$PSScriptRoot\vscodeStableVersion.txt").Trim() # e.g., "1.53"
37-
$vsCodeVersionParts = $vsCodeStableVersion -split "\."
38-
$vsCodeInsidersVersion = $vsCodeVersionParts[0] + "." + ([int]$vsCodeVersionParts[1] + 1)
39-
Update-VersionNumbers -packageJsonPath "$PSScriptRoot\stable\package.json" -vscodeEngine "^$vsCodeStableVersion.0"
40-
Update-VersionNumbers -packageJsonPath "$PSScriptRoot\insiders\package.json" -vscodeEngine "$vsCodeInsidersVersion.0-insider"

0 commit comments

Comments
 (0)