diff --git a/table/command.go b/table/command.go index 1e08faf..913e262 100644 --- a/table/command.go +++ b/table/command.go @@ -121,8 +121,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 b70578c..d952e53 100644 --- a/table/options.go +++ b/table/options.go @@ -16,4 +16,6 @@ type Options struct { CellStyle style.Styles `embed:"" prefix:"cell." envprefix:"GUM_TABLE_CELL_"` 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"` }