Private/Update-AvailableTerraformVersions.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
Function Update-AvailableTerraformVersions {
    [cmdletbinding()]
    Param(
        [parameter(Mandatory = $True)]
        $Config
    )

    # check for new releases
    $Now = Get-Date -Format s (Get-Date).ToUniversalTime()
    $Start = Get-Date -Format s (Get-Date $Config.LastUpdateCheck)

    $Timespan = New-TimeSpan -Start $Start -End $Now

    Write-Debug ("Config.LastUpdateCheck: {0}" -f $Config.LastUpdateCheck)
    Write-Debug ("Now: {0}" -f $Now)
    Write-Debug ("Start: {0}" -f $Start)
    Write-Debug ("Minutes since last update check: {0}" -f [int]$Timespan.TotalMinutes)

    if ($Timespan.TotalHours -gt 1) {
        $Config.AvailableVersions = Get-TerraformVersions
        $Config.LastUpdateCheck = $Now
        $Config.Save()
    }

}