Public/Convert-NcrementVersionNumberToString.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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<#
.SYNOPSIS
Returns the string representation of a [Manifest] version object.
 
.PARAMETER InputObject
The [Manifest] object or [Version] object.
 
.PARAMETER AppendSuffix
Determine wether to append the version suffix.
 
.INPUTS
[Manifest]
[Version]
 
.OUTPUTS
[String]
 
.EXAMPLE
$manifest | Convert-NcrementVersionNumberToString;
This example returns the [Manifest] version number as a string.
#>


function Convert-NcrementVersionNumberToString
{
    Param(
        [Parameter(Mandatory, ValueFromPipeline)]
        $InputObject,

        [switch]$AppendSuffix
    )

    [string]$version = "";
    if ($InputObject.PSObject.Properties.Match("Version").Count -gt 0)
    {
        $version = "$($InputObject.Version.Major).$($InputObject.Version.Minor).$($InputObject.Version.Patch)";
        if ($AppendSuffix -and (-not [string]::IsNullOrEmpty($InputObject.Version.Suffix)))
        {
            $version = "$($version)-$($InputObject.Version.Suffix)";
        }
    }
    else
    {
        $version = "$($InputObject.Major).$($InputObject.Minor).$($InputObject.Patch)";
        if ($AppendSuffix -and (-not [string]::IsNullOrEmpty($InputObject.Suffix)))
        {
            $version = "$($version)-$($InputObject.Suffix)";
        }
    }

    return $version;
}