public/Write-CmdletAlias.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

function Write-CmdletAlias() {
    Param(
        [Parameter(Position = 0)]
        [PsCustomObject] $Model,

        [Parameter(Position = 1)]
        [String] $HeaderTemplate,

        [Parameter(Position = 2)]
        [String] $ItemTemplate
    )


    $aliases = $Model.Alias;
    if($aliases -and $aliases.Length) {
        $Name = $Model.Name;
        if([string]::IsNullOrWhitespace($HeaderTemplate)) {
            $HeaderTemplate = "`n## {0} Aliases`n`n"
        }

        if([string]::IsNullOrWhitespace($ItemTemplate)) {
            $ItemTemplate = "`n- {0}"
        }
        
        $out = [string]::Format($HeaderTemplate, $Name);
        
        $aliases | ForEach-Object {
            $name = $_.Name 
            $out += [string]::Format($ItemTemplate, $name)
        }
        $out + "`n"

        return $out 
    }

    return "";
}