[#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:
parent
bcd48ff221
commit
b00f184c78
2 changed files with 48 additions and 0 deletions
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue