42 lines
1.9 KiB
PowerShell
42 lines
1.9 KiB
PowerShell
#######
|
|
Write-Verbose -Message "Determine if ITD_PwshGallery is registered" -Verbose
|
|
If(Get-PSRepository -Name ITD_PwshGallery -ErrorAction SilentlyContinue){
|
|
Write-Verbose -Message "ITD_PwshGallery found." -Verbose
|
|
} Else {
|
|
$RegisterPSRepositoryParams = @{
|
|
Name = 'ITD_PwshGallery';
|
|
InstallationPolicy = 'Trusted';
|
|
SourceLocation = 'https://powershell.nd.gov/ITD_PwshGallery/nuget/';
|
|
PublishLocation = 'https://powershell.nd.gov/ITD_PwshGallery/nuget/';
|
|
ScriptSourceLocation = 'https://powershell.nd.gov/ITD_PwshGallery/nuget/';
|
|
ScriptPublishLocation = 'https://powershell.nd.gov/ITD_PwshGallery/nuget/';
|
|
}
|
|
Register-PSRepository @RegisterPSRepositoryParams
|
|
}
|
|
|
|
Write-Verbose -Message "Retrieve list of all available modules and versions"
|
|
$ITDModules = Find-Module -Name "ITD.*" -Repository ITD_PwshGallery
|
|
|
|
|
|
Write-Verbose -Message "Compare local module versions to repository versions, and update if needed"
|
|
ForEach($ITDModule in $ITDModules){
|
|
$VersionsAvailable = $null
|
|
$MostRecentVersion = $null
|
|
$RepoVersion = $null
|
|
|
|
$VersionsAvailable = Get-Module -Name $ITDModule.name -ListAvailable
|
|
$MostRecentVersion = $VersionsAvailable | Sort-Object Version -Descending | Select -First 1
|
|
$RepoVersion = $ITDModule.Version
|
|
|
|
If($null -eq $MostRecentVersion) {
|
|
Write-Verbose -Message ($ITDModule.Name + " was not found locally, installing module now.") -Verbose
|
|
Install-Module -Name $ITDModule.Name -Scope AllUsers -Repository ITD_PwshGallery
|
|
} Else {
|
|
Write-Verbose -Message ($ITDModule.Name + " was found locally, comparing versions and updating if needed..") -Verbose
|
|
Write-Host -Message ($ITDModule.Name)
|
|
Write-Host -Message ("Local version is " + $MostRecentVersion.Version)
|
|
Write-Host -Message ("The Repo version is " + $RepoVersion)
|
|
Write-Host -Message ("")
|
|
Update-Module -Name $ITDModule.Name -Scope AllUsers -Verbose
|
|
}
|
|
} |