CoreePower.Lib.Initialize.DevTools.VsCode.ps1
function Initialize-DevToolsVsCode { [Diagnostics.CodeAnalysis.SuppressMessage("PSUseApprovedVerbs","")] param ( [ModuleScope]$Scope = [ModuleScope]::CurrentUser ) # Check if the current process can execute in the desired scope if (-not(CanExecuteInDesiredScope -Scope $Scope)) { return } $moduleName , $moduleVersion = Get-CurrentModule -MyInvocationMyCommand $MyInvocation.MyCommand $updatesDone = $false $contentText = "code (Visual Studio Code)" Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Check" if (-not((Test-Path "$($global:CoreeDevToolsRoot)\vscodezip\code.exe" -PathType Leaf))) { Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Download" $temporaryDir = New-TempDirectory $file = Get-RedirectDownload2 -Url "https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-archive" Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Download Completed" Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Extracting" $originalProgressPreference = $global:ProgressPreference $global:ProgressPreference = 'SilentlyContinue' Expand-Archive -Path $file -DestinationPath $temporaryDir $global:ProgressPreference = $originalProgressPreference Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Extracting Completed" Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Copying" Copy-Recursive -Source $temporaryDir -Destination "$($global:CoreeDevToolsRoot)\vscodezip" Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Copying Completed" Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Adding envar" AddPathEnviromentVariable -Path "$($global:CoreeDevToolsRoot)\vscodezip\bin" -Scope CurrentUser Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Adding envar Completed" Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Available" } else { Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Already available" } return $updatesDone } |