diff --git a/HomeAssistant/Get-HA_Addon.ps1 b/HomeAssistant/Get-HA_Addon.ps1 index a9a43ef..0c25a03 100644 --- a/HomeAssistant/Get-HA_Addon.ps1 +++ b/HomeAssistant/Get-HA_Addon.ps1 @@ -1,5 +1,7 @@ [CmdletBinding(SupportsShouldProcess)]param( + [Alias('Slug')] [string[]]$AddOnSlug, + [Alias('Name')] [string[]]$AddOnName, [switch]$InspectContainer, [switch]$NoPatternMatch, @@ -14,7 +16,7 @@ $addons = $addons.data.addons switch( $Status ) { 'Installed' { $addons = $addons | Where-Object Installed } 'NotInstalled' { $addons = $addons | Where-Object -Not Installed } - 'Running' { + default { $addons = $addons | Where-Object Installed $InspectContainer = $true } @@ -49,7 +51,7 @@ switch( $Status ) { $addons = $addons | Where-Object Status -eq 'running' } 'Stopped' { - $addons = $addons | Where-Object Status -eq 'running' + $addons = $addons | Where-Object Status -ne 'running' } } diff --git a/HomeAssistant/Start-HA_Addon.ps1 b/HomeAssistant/Start-HA_Addon.ps1 index 6c05c28..3319184 100644 --- a/HomeAssistant/Start-HA_Addon.ps1 +++ b/HomeAssistant/Start-HA_Addon.ps1 @@ -1,8 +1,23 @@ [CmdletBinding(SupportsShouldProcess)]param( + [Parameter(ValueFromPipeline,ValueFromPipelineByPropertyName)] + [Alias('Slug')] [string[]]$AddOnSlug, [switch]$NoPatternMatch ) -Get-HA_Addon 'Installed' -AddOnSlug:$AddOnSlug -NoPatternMatch:$NoPatternMatch | ForEach-Object { - Invoke-HomeAssistantCli addons start $_.slug +begin{} +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{} diff --git a/HomeAssistant/Stop-HA_Addon.ps1 b/HomeAssistant/Stop-HA_Addon.ps1 index dc4b65d..a1d9166 100644 --- a/HomeAssistant/Stop-HA_Addon.ps1 +++ b/HomeAssistant/Stop-HA_Addon.ps1 @@ -1,8 +1,23 @@ [CmdletBinding(SupportsShouldProcess)]param( + [Parameter(ValueFromPipeline,ValueFromPipelineByPropertyName)] + [Alias('Slug')] [string[]]$AddOnSlug, [switch]$NoPatternMatch ) -Get-HA_Addon 'Running' -AddOnSlug:$AddOnSlug -NoPatternMatch:$NoPatternMatch | ForEach-Object { - Invoke-HomeAssistantCli addons stop $_.slug +begin{} +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{}