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

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

        [Parameter(Position = 1)]
        [ScriptBlock] $Do 
    )

    if(!$Do) {
        $Do = {
            Param(
                [Parameter(Position = 0)]
                [PsCustomObject] $Model
            )

            $out = "";
            $out += Write-CmdletFrontMatter -Model $Model
            $out += Write-CmdletSynopsis $Model
            $out += Write-CmdletDescription $Model
            $out += Write-CmdletSyntax $Model
            $out += Write-CmdletAlias $Model
            $out += Write-CmdletParameter $Model
            $out += Write-CmdletInput $Model
            $out += Write-CmdletOutput $Model 
            $out += Write-CmdletNote $model 
            $out += Write-CmdletExample $model 
            $out += Write-CmdletLink $model 

            return $out;
        }
    }

    return & $Do -Model $Model 
}