CoreePower.Lib.Initialize.DevTools.MsOpenjdk17.ps1
function Initialize-DevToolsMsOpenjdk17 { [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 = "Microsoft OpenJDK17" Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Check" if (-not(Get-Command "java" -ErrorAction SilentlyContinue)) { Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Download" $targetdir = "$($global:CoreeDevToolsRoot)\microsoft-jdk-17" New-Directory -Directory $targetdir | Out-Null $msjdkuri = Find-Links -url "https://learn.microsoft.com/en-us/java/openjdk/download" $stringUris = $msjdkuri | ForEach-Object { $_.AbsoluteUri } $foundUrls = @() $foundUrls = Find-ItemsWithLists -InputItems $stringUris -WhiteListMatch @("download-jdk","17","windows","x64",".zip") -BlackListMatch @("sha","debug") $file = Get-RedirectDownload2 -Url $foundUrls 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 $targetdir -Force $global:ProgressPreference = $originalProgressPreference Write-FormatedText -PrefixText "$moduleName" -ContentText $contentText -SuffixText "Extracting Completed" Write-FormatedText -PrefixText "$moduleName" -ContentText $contentText -SuffixText "Removing Download" Remove-TempDirectory -TempDirectory $file $found = Find-FileDirRecursively -DirectoryPath "$targetdir" -FileName "java.exe" AddPathEnviromentVariable -Path "$found" -Scope CurrentUser AddEnviromentVariable -Name "JAVA_HOME" -Value "$found" 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" } Write-FormatedText -PrefixText "$moduleName" -ContentText "$contentText" -SuffixText "Completed" return $updatesDone } |