diff --git a/table/command.go b/table/command.go index f25b991..b85af2e 100644 --- a/table/command.go +++ b/table/command.go @@ -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() diff --git a/table/options.go b/table/options.go index dc692ef..3e58c45 100644 --- a/table/options.go +++ b/table/options.go @@ -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"` }