-
Notifications
You must be signed in to change notification settings - Fork 0
/
DemoPipelineSupport.ps1
92 lines (80 loc) · 1.85 KB
/
DemoPipelineSupport.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
function Show-FruitColor {
<#
.SYNOPSIS
Sample function which does NOT support the pipeline
.PARAMETER Fruit
Specify a piece of fruit to learn its color
.NOTES
Author: Ryan Leap
Email: ryan.leap@gmail.com
#>
param (
[ValidateSet('Apple','Banana','Kiwi')]
[Parameter(Mandatory = $true)]
[string[]] $Fruit
)
$colorMap = @{
'Apple' = 'Red'
'Banana' = 'Yellow'
'Kiwi' = 'Green'
}
foreach ($pieceOfFruit in $Fruit) {
Write-Host "[$pieceOfFruit]'s are [$($colorMap[$pieceOfFruit])]" -ForegroundColor $colorMap[$pieceOfFruit]
}
}
function Show-Pipeline {
<#
.SYNOPSIS
Super simple function with pipeline support
.PARAMETER Thing
Specify one or more strings
.NOTES
Author: Ryan Leap
Email: ryan.leap@gmail.com
#>
[CmdletBinding()]
param (
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
[string] $Thing
)
begin {
Write-Verbose "Begin Block"
}
process {
Write-Verbose "Process Block [$Thing]"
}
end {
Write-Verbose "End Block"
}
}
function Show-FruitColorPipe {
<#
.SYNOPSIS
Sample function which DOES support the pipeline
.PARAMETER Fruit
Specify a piece of fruit to learn its color
.NOTES
Author: Ryan Leap
Email: ryan.leap@gmail.com
#>
[CmdletBinding()]
param (
[ValidateSet('Apple','Banana','Kiwi')]
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
[string[]] $Fruit
)
begin {
$colorMap = @{
'Apple' = 'Red'
'Banana' = 'Yellow'
'Kiwi' = 'Green'
}
}
process {
foreach ($pieceOfFruit in $Fruit) {
Write-Host "[$pieceOfFruit]'s are [$($colorMap[$pieceOfFruit])]" -ForegroundColor $colorMap[$pieceOfFruit]
}
}
end {
}
}