[#1223] lens/tui: Add CLI flags to start search on application run

Signed-off-by: Aleksey Savchuk <a.savchuk@yadro.com>
This commit is contained in:
Aleksey Savchuk 2024-08-12 11:05:19 +03:00
parent bcd48ff221
commit b00f184c78
No known key found for this signature in database
2 changed files with 48 additions and 0 deletions

View file

@ -18,8 +18,27 @@ var tuiCMD = &cobra.Command{
Run: tuiFunc,
}
var (
initialFilter string
needListFilters bool
)
func init() {
common.AddComponentPathFlag(tuiCMD, &vPath)
tuiCMD.Flags().StringVar(
&initialFilter,
"filter",
"",
"Initial filter to start with, format <tag>:<args...>",
)
tuiCMD.Flags().BoolVar(
&needListFilters,
"list-filters",
false,
"List all available filters",
)
}
func tuiFunc(cmd *cobra.Command, _ []string) {
@ -31,6 +50,18 @@ func runTUI(cmd *cobra.Command) error {
// tview.Styles.PrimitiveBackgroundColor = tcell.ColorWhite
// tview.Styles.GraphicsColor = tcell.ColorBlack
if needListFilters {
cmd.Println("tag\targs")
cmd.Println("---\t----")
cmd.Println("cid\t<CID>")
cmd.Println("oid\t<OID>")
cmd.Println("addr\t<CID>/<OID>")
cmd.Println("attr\t<key> or <key>/<value>")
return nil
}
db, err := openDB(false)
common.ExitOnErr(cmd, err)
defer db.Close()
@ -46,6 +77,11 @@ func runTUI(cmd *cobra.Command) error {
_ = ui.AddCompositeFilter("addr", addrParser, "<CID>/<OID>")
_ = ui.AddCompositeFilter("attr", attributeParser, "<key> or <key>/<value>")
err = ui.WithPrompt(initialFilter)
if err != nil {
return err
}
app.SetRoot(ui, true).SetFocus(ui)
return app.Run()

View file

@ -452,6 +452,18 @@ func (ui *UI) handleInputOnSearching(event *tcell.EventKey) {
ui.Box.MouseHandler()
}
func (ui *UI) WithPrompt(prompt string) error {
filter, err := ui.processPrompt(prompt)
if err != nil {
return err
}
ui.pageToMount = NewBucketsView(ui, filter)
ui.searchBar.SetText(prompt)
return nil
}
func (ui *UI) processPrompt(prompt string) (filter *Filter, err error) {
if prompt == "" {
return NewFilter(nil), nil