mirror of
https://github.com/onyx-and-iris/gobs-cli.git
synced 2025-10-04 16:41:48 +00:00
Compare commits
3 Commits
0a0c75ae51
...
d9c0e40d8f
Author | SHA1 | Date | |
---|---|---|---|
d9c0e40d8f | |||
42ab45b9fb | |||
27c3c5369b |
@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
# [0.10.3] - 2025-06-07
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- filter list:
|
||||||
|
- --ffmpeg, --vlc flags
|
||||||
|
- Muted column to list table
|
||||||
|
|
||||||
# [0.10.2] - 2025-06-04
|
# [0.10.2] - 2025-06-04
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
@ -223,6 +223,8 @@ gobs-cli group status START "test_group"
|
|||||||
- --input: List all inputs.
|
- --input: List all inputs.
|
||||||
- --output: List all outputs.
|
- --output: List all outputs.
|
||||||
- --colour: List all colour sources.
|
- --colour: List all colour sources.
|
||||||
|
- --ffmpeg: List all ffmpeg sources.
|
||||||
|
- --vlc: List all VLC sources.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
gobs-cli input list
|
gobs-cli input list
|
||||||
|
51
input.go
51
input.go
@ -21,6 +21,8 @@ type InputListCmd struct {
|
|||||||
Input bool `flag:"" help:"List all inputs." aliases:"i"`
|
Input bool `flag:"" help:"List all inputs." aliases:"i"`
|
||||||
Output bool `flag:"" help:"List all outputs." aliases:"o"`
|
Output bool `flag:"" help:"List all outputs." aliases:"o"`
|
||||||
Colour bool `flag:"" help:"List all colour sources." aliases:"c"`
|
Colour bool `flag:"" help:"List all colour sources." aliases:"c"`
|
||||||
|
Ffmpeg bool `flag:"" help:"List all ffmpeg sources." aliases:"f"`
|
||||||
|
Vlc bool `flag:"" help:"List all VLC sources." aliases:"v"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run executes the command to list all inputs.
|
// Run executes the command to list all inputs.
|
||||||
@ -32,22 +34,47 @@ func (cmd *InputListCmd) Run(ctx *context) error {
|
|||||||
|
|
||||||
t := table.New(ctx.Out)
|
t := table.New(ctx.Out)
|
||||||
t.SetPadding(3)
|
t.SetPadding(3)
|
||||||
t.SetAlignment(table.AlignLeft, table.AlignLeft)
|
t.SetAlignment(table.AlignLeft, table.AlignLeft, table.AlignCenter)
|
||||||
t.SetHeaders("Input Name", "Kind")
|
t.SetHeaders("Input Name", "Kind", "Muted")
|
||||||
|
|
||||||
for _, input := range resp.Inputs {
|
for _, input := range resp.Inputs {
|
||||||
if cmd.Input && strings.Contains(input.InputKind, "input") {
|
var muteMark string
|
||||||
t.AddRow(input.InputName, input.InputKind)
|
for _, kind := range []string{"input", "output", "ffmpeg", "vlc"} {
|
||||||
}
|
if strings.Contains(input.InputKind, kind) {
|
||||||
if cmd.Output && strings.Contains(input.InputKind, "output") {
|
resp, err := ctx.Client.Inputs.GetInputMute(
|
||||||
t.AddRow(input.InputName, input.InputKind)
|
inputs.NewGetInputMuteParams().WithInputName(input.InputName),
|
||||||
}
|
)
|
||||||
if cmd.Colour && strings.Contains(input.InputKind, "color") { // nolint
|
if err != nil {
|
||||||
t.AddRow(input.InputName, input.InputKind)
|
return fmt.Errorf("failed to get input mute state: %w", err)
|
||||||
|
}
|
||||||
|
muteMark = getEnabledMark(resp.InputMuted)
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if !cmd.Input && !cmd.Output && !cmd.Colour {
|
type filter struct {
|
||||||
t.AddRow(input.InputName, input.InputKind)
|
enabled bool
|
||||||
|
keyword string
|
||||||
|
}
|
||||||
|
filters := []filter{
|
||||||
|
{cmd.Input, "input"},
|
||||||
|
{cmd.Output, "output"},
|
||||||
|
{cmd.Colour, "color"}, // nolint: misspell
|
||||||
|
{cmd.Ffmpeg, "ffmpeg"},
|
||||||
|
{cmd.Vlc, "vlc"},
|
||||||
|
}
|
||||||
|
|
||||||
|
var added bool
|
||||||
|
for _, f := range filters {
|
||||||
|
if f.enabled && strings.Contains(input.InputKind, f.keyword) {
|
||||||
|
t.AddRow(input.InputName, input.InputKind, muteMark)
|
||||||
|
added = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !added && (!cmd.Input && !cmd.Output && !cmd.Colour && !cmd.Ffmpeg && !cmd.Vlc) {
|
||||||
|
t.AddRow(input.InputName, input.InputKind, muteMark)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
t.Render()
|
t.Render()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user