Core/ThirdPartyDependencies-Module.psm1
$ErrorActionPreference = "Stop" function ConfigureChoco { $initChoco = $true try { choco | Out-Null choco upgrade chocolatey --limitoutput --confirm | Out-Null } catch { try { Invoke-WebRequest https://chocolatey.org/install.ps1 -UseBasicParsing | Invoke-Expression | Out-Null } catch { $initChoco = $false Write-Warning "SAF was not able to configure Chocolatey. You may need to install manually some third party dependencies." Start-Sleep 5 } } if ($initChoco) { choco feature enable -n allowGlobalConfirmation | Out-Null RefreshEnvironment } } function ConfigurePSGallery { $latestNuget = Find-PackageProvider -Name "NuGet" -Force $installedNuget = Get-PackageProvider -Name "Nuget" -ListAvailable | Select-Object -First 1 if ($latestNuget.version -gt $installedNuget.version) { Install-PackageProvider -Name "NuGet" -Source "PSGallery" -RequiredVersion $latestNuget.version -Force | Out-Null } Import-PackageProvider -Name "Nuget" -RequiredVersion $latestNuget.version -Force | Out-Null # Ensure Trusted, so that users are not prompted before installing modules from that source. Set-PSRepository -Name PSGallery -InstallationPolicy Trusted $latestPSGet = Find-PackageProvider -Name "PowerShellGet" $installedPSGet = Get-PackageProvider -Name "PowerShellGet" -ListAvailable | Select-Object -First 1 if ($latestPSGet.version -gt $installedPSGet.version) { Install-PackageProvider -Name "PowerShellGet" -Source "PSGallery" -RequiredVersion $latestPSGet.version -Force | Out-Null } Import-PackageProvider -Name "PowerShellGet" -RequiredVersion $latestPSGet.version -Force | Out-Null } function GetRequiredSIFVersion { if ($null -ne $SAFConfiguration.sitecore.version) { if ($SAFConfiguration.sitecore.version.Contains("9.0")) { return $SAFSitecore90SIFVersion } if ($SAFConfiguration.sitecore.version.Contains("9.1")) { return $SAFSitecore91SIFVersion } if ($SAFConfiguration.sitecore.version.Contains("9.2")) { return $SAFSitecore92SIFVersion } } return $SAFSitecore90SIFVersion } function ImportSIF { EnableIISAdministration $repositoryURL = "https://sitecore.myget.org/F/sc-powershell/api/v2" $repositoryName = "SitecoreGallery" $requiredSIFVersion = GetRequiredSIFVersion try { $existing = Get-PSRepository -Name $repositoryName -ErrorAction Ignore if ($null -eq $existing) { Register-PSRepository -Name $repositoryName -SourceLocation $repositoryURL -InstallationPolicy Trusted } $sifModules = Get-Module -Name SitecoreInstallFramework -ListAvailable $installRequiredSIFVersion = $true if ($null -ne $sifModules) { foreach ($module in $sifModules) { if ($module.Version -eq $requiredSIFVersion) { $installRequiredSIFVersion = $false } } } if ($installRequiredSIFVersion) { Install-Module -Name SitecoreInstallFramework -RequiredVersion $requiredSIFVersion -Repository $repositoryName -AllowClobber -Force } Get-Module -Name SitecoreInstallFramework | Remove-Module -Force Import-Module -Name SitecoreInstallFramework -RequiredVersion $requiredSIFVersion -Force -Global } catch { Write-Warning "SAF was not able to install the required SIF version $requiredSIFVersion. Please, install it manually if you don't have it..." Start-Sleep 5 Get-Module -Name SitecoreInstallFramework | Remove-Module -Force } } Export-ModuleMember -Function "ConfigureChoco" Export-ModuleMember -Function "ConfigurePSGallery" Export-ModuleMember -Function "ImportSIF" |