feat: Adding Return Column to table command

Consider a table of
ID Name Description
1  Task1 Task description

It would be good to select the row but retrieve the ID for example for further processing

like 'task 1 delete' when first row was selected
This commit is contained in:
Dieter Eickstädt 2023-08-23 18:02:54 +02:00
parent a63ea30136
commit 227904e6da
2 changed files with 9 additions and 2 deletions

View file

@ -105,8 +105,14 @@ func (o Options) Run() error {
m := tm.(model)
if err = writer.Write([]string(m.selected)); err != nil {
return fmt.Errorf("failed to write selected row: %w", err)
if o.ReturnColumn > 0 && o.ReturnColumn < len(m.selected) {
if err = writer.Write([]string{m.selected[o.ReturnColumn-1]}); err != nil {
return fmt.Errorf("failed to write col %d of selected row: %w", o.ReturnColumn, err)
}
} else {
if err = writer.Write([]string(m.selected)); err != nil {
return fmt.Errorf("failed to write selected row: %w", err)
}
}
writer.Flush()

View file

@ -12,4 +12,5 @@ type Options struct {
HeaderStyle style.Styles `embed:"" prefix:"header." envprefix:"GUM_TABLE_HEADER_"`
SelectedStyle style.Styles `embed:"" prefix:"selected." set:"defaultForeground=212" envprefix:"GUM_TABLE_SELECTED_"`
File string `short:"f" help:"file path" default:""`
ReturnColumn int `short:"r" help:"Which column number should be returned instead of whole row as string. Default=0 returns whole Row" default:"0"`
}