(opts ExtBrowseOpts)
| 378 | } |
| 379 | |
| 380 | func ExtBrowse(opts ExtBrowseOpts) error { |
| 381 | if opts.Debug { |
| 382 | f, err := os.CreateTemp("", "extBrowse-*.txt") |
| 383 | if err != nil { |
| 384 | return err |
| 385 | } |
| 386 | defer os.Remove(f.Name()) |
| 387 | |
| 388 | opts.Logger = log.New(f, "", log.Lshortfile) |
| 389 | } else { |
| 390 | opts.Logger = log.New(io.Discard, "", 0) |
| 391 | } |
| 392 | |
| 393 | opts.IO.StartProgressIndicator() |
| 394 | extEntries, err := getExtensions(opts) |
| 395 | opts.IO.StopProgressIndicator() |
| 396 | if err != nil { |
| 397 | return err |
| 398 | } |
| 399 | |
| 400 | opts.Rg = newReadmeGetter(opts.Client, time.Hour*24) |
| 401 | |
| 402 | app := tview.NewApplication() |
| 403 | |
| 404 | outerFlex := tview.NewFlex() |
| 405 | innerFlex := tview.NewFlex() |
| 406 | |
| 407 | header := tview.NewTextView().SetText(fmt.Sprintf("browsing %d gh extensions", len(extEntries))) |
| 408 | header.SetTextAlign(tview.AlignCenter).SetTextColor(tcell.ColorWhite) |
| 409 | |
| 410 | filter := tview.NewInputField().SetLabel("filter: ") |
| 411 | filter.SetFieldBackgroundColor(tcell.ColorGray) |
| 412 | filter.SetBorderPadding(0, 0, 20, 20) |
| 413 | |
| 414 | list := tview.NewList() |
| 415 | |
| 416 | readme := tview.NewTextView() |
| 417 | readme.SetBorderPadding(1, 1, 0, 1) |
| 418 | readme.SetBorder(true).SetBorderColor(tcell.ColorPurple) |
| 419 | |
| 420 | help := tview.NewTextView() |
| 421 | help.SetDynamicColors(true) |
| 422 | help.SetText("[::b]?[-:-:-]: help [::b]j/k[-:-:-]: move [::b]i[-:-:-]: install [::b]r[-:-:-]: remove [::b]w[-:-:-]: web [::b]↵[-:-:-]: view readme [::b]q[-:-:-]: quit") |
| 423 | |
| 424 | cmdFlex := tview.NewFlex() |
| 425 | |
| 426 | pages := tview.NewPages() |
| 427 | |
| 428 | ui := uiRegistry{ |
| 429 | App: app, |
| 430 | Outerflex: outerFlex, |
| 431 | List: list, |
| 432 | Pages: pages, |
| 433 | CmdFlex: cmdFlex, |
| 434 | } |
| 435 | |
| 436 | extList := newExtList(opts, ui, extEntries) |
| 437 |
no test coverage detected