Public/Filter-Release.Tools.ps1

Function Get-FilteredRelease {
    <#
        .EXAMPLE
            $Releases = Get-GitTagList -TagPrefix WebApp
            Get-FilteredRelease -Major 6 -Releases $Releases
    #>

    Param (
        $Major
        ,
        $Minor
        ,
        $Latest
        ,
        [Parameter(Mandatory)]
        $Releases
    )
    $CurrentMajor = $Releases.Major | Select-Object -first 1
    $CurrentMinor = ($Releases | Where-Object { $_.Major -eq $Major } ).Minor | Select-Object -first 1
    If ($Latest) {
        Write-Information "Getting Releases of Latest $Latest, current Major:$CurrentMajor, Minor:$CurrentMinor"
        If ($Latest -eq 'Build') {
            $Releases = $Releases | Select-Object -first 1
        } ElseIf ($Latest -eq 'Major') {

            Write-Information "$latest $major"
            $Releases = $Releases | Where-Object { $_.Major -eq $CurrentMajor }
        } ElseIf ($Latest -eq 'Minor') {
            Write-Information "$latest $Major.$Minor"
            $Releases = $Releases | Where-Object { $_.Major -eq $CurrentMajor -and $_.Minor -eq $CurrentMinor }
        }
    }
    If ($Major) {
        $Releases = $Releases | Where-Object { $_.Major -eq $Major }
    }
    If ($Minor) {
        $Releases = $Releases | Where-Object { $_.Major -eq $Major -and $_.Minor -eq $Minor }
    }
    Write-Output $Releases
}