-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcodium_setup.ps1
65 lines (53 loc) · 2.62 KB
/
codium_setup.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Clear-Host
codium --install-extension bierner.markdown-mermaid --force
codium --install-extension DavidAnson.vscode-markdownlint --force
codium --install-extension DotJoshJohnson.xml --force
codium --install-extension eamodio.gitlens --force
codium --install-extension GitHub.github-vscode-theme --force
codium --install-extension GrapeCity.gc-excelviewer --force
codium --install-extension hashicorp.terraform --force
codium --install-extension hediet.vscode-drawio --force
codium --install-extension hilleer.yaml-plus-json --force
codium --install-extension jebbs.plantuml --force
codium --install-extension jock.svg --force
codium --install-extension johnpapa.vscode-peacock --force
codium --install-extension mikestead.dotenv --force
codium --install-extension redhat.vscode-yaml --force
$extensions = @(
@{ publisher="creinbacher"; extension="xpathtester"; },
@{ publisher="digital-molecules"; extension="service-bus-explorer"; },
@{ publisher="donjayamanne"; extension="kusto"; },
@{ publisher="GitHub"; extension="copilot"; },
@{ publisher="heaths"; extension="vscode-guid"; },
@{ publisher="henoc"; extension="svgeditor"; },
@{ publisher="ms-azure-devops"; extension="azure-pipelines"; },
@{ publisher="ms-azuretools"; extension="vscode-bicep"; },
@{ publisher="ms-azuretools"; extension="vscode-cosmosdb"; },
@{ publisher="ms-mssql"; extension="mssql"; },
@{ publisher="ms-mssql"; extension="sql-database-projects-vscode"; },
@{ publisher="ms-vscode"; extension="PowerShell"; }
)
Install-Module -Name PowerHTML
# get the html of a webpage
function Get-WebPage {
param (
[string]$publisher,
[string]$extension
)
$name = "$($publisher).$($extension)"
$extensionpageUrl = "https://marketplace.visualstudio.com/items?itemName=$name"
$response = Invoke-WebRequest -Uri $extensionpageUrl
$html = ConvertFrom-Html $response
$json =$html.SelectSingleNode("//script[@class='jiContent']").innerText.Trim() | ConvertFrom-Json
$latestVersion = $json.Versions[0].version
$downloadUrl = "https://marketplace.visualstudio.com/_apis/public/gallery/publishers/$publisher/vsextensions/$extension/$latestVersion/vspackage"
Write-Host "$name found v$latestVersion as latest version - downloading from $downloadUrl"
Invoke-WebRequest -Uri $downloadUrl -OutFile "$name-$latestVersion.vsix"
}
foreach ($extension in $extensions) {
Get-WebPage $extension.publisher $extension.extension
}
Get-ChildItem -Path $PSScriptRoot -Filter *.vsix | Sort-Object $._FullName | ForEach-Object {
codium --install-extension $_.FullName --force
}
Remove-Item * -Include *.vsix -Force