=Added powershell-pipeline functionality to ha cmdlets

This commit is contained in:
Gal Szkolnik 2022-02-05 16:20:25 -05:00
parent 47f27cb1f5
commit 10b670269a
3 changed files with 38 additions and 6 deletions

View File

@ -1,5 +1,7 @@
[CmdletBinding(SupportsShouldProcess)]param( [CmdletBinding(SupportsShouldProcess)]param(
[Alias('Slug')]
[string[]]$AddOnSlug, [string[]]$AddOnSlug,
[Alias('Name')]
[string[]]$AddOnName, [string[]]$AddOnName,
[switch]$InspectContainer, [switch]$InspectContainer,
[switch]$NoPatternMatch, [switch]$NoPatternMatch,
@ -14,7 +16,7 @@ $addons = $addons.data.addons
switch( $Status ) { switch( $Status ) {
'Installed' { $addons = $addons | Where-Object Installed } 'Installed' { $addons = $addons | Where-Object Installed }
'NotInstalled' { $addons = $addons | Where-Object -Not Installed } 'NotInstalled' { $addons = $addons | Where-Object -Not Installed }
'Running' { default {
$addons = $addons | Where-Object Installed $addons = $addons | Where-Object Installed
$InspectContainer = $true $InspectContainer = $true
} }
@ -49,7 +51,7 @@ switch( $Status ) {
$addons = $addons | Where-Object Status -eq 'running' $addons = $addons | Where-Object Status -eq 'running'
} }
'Stopped' { 'Stopped' {
$addons = $addons | Where-Object Status -eq 'running' $addons = $addons | Where-Object Status -ne 'running'
} }
} }

View File

@ -1,8 +1,23 @@
[CmdletBinding(SupportsShouldProcess)]param( [CmdletBinding(SupportsShouldProcess)]param(
[Parameter(ValueFromPipeline,ValueFromPipelineByPropertyName)]
[Alias('Slug')]
[string[]]$AddOnSlug, [string[]]$AddOnSlug,
[switch]$NoPatternMatch [switch]$NoPatternMatch
) )
Get-HA_Addon 'Installed' -AddOnSlug:$AddOnSlug -NoPatternMatch:$NoPatternMatch | ForEach-Object { begin{}
Invoke-HomeAssistantCli addons start $_.slug process{
foreach( $slug in $AddOnSlug ) {
Get-HA_Addon 'Running' -AddOnSlug:$slug -NoPatternMatch:$NoPatternMatch | ForEach-Object {
$local:a = $_
$local:invocation = Invoke-HomeAssistantCli addons start $a.slug
Get-HA_Addon -InspectContainer -NoPatternMatch -AddOnSlug $a.slug |
Select-Object @{
L='result';E={$invocation.result}
},@{
L='data';E={$invocation.data}
},*
}
}
} }
end{}

View File

@ -1,8 +1,23 @@
[CmdletBinding(SupportsShouldProcess)]param( [CmdletBinding(SupportsShouldProcess)]param(
[Parameter(ValueFromPipeline,ValueFromPipelineByPropertyName)]
[Alias('Slug')]
[string[]]$AddOnSlug, [string[]]$AddOnSlug,
[switch]$NoPatternMatch [switch]$NoPatternMatch
) )
Get-HA_Addon 'Running' -AddOnSlug:$AddOnSlug -NoPatternMatch:$NoPatternMatch | ForEach-Object { begin{}
Invoke-HomeAssistantCli addons stop $_.slug process{
foreach( $slug in $AddOnSlug ) {
Get-HA_Addon 'Running' -AddOnSlug:$slug -NoPatternMatch:$NoPatternMatch | ForEach-Object {
$local:a = $_
$local:invocation = Invoke-HomeAssistantCli addons stop $a.slug
Get-HA_Addon -InspectContainer -NoPatternMatch -AddOnSlug $a.slug |
Select-Object @{
L='result';E={$invocation.result}
},@{
L='data';E={$invocation.data}
},*
}
}
} }
end{}