1package commands
2
3import (
4 "github.com/spf13/cobra"
5
6 "github.com/MichaelMure/git-bug/cache"
7 "github.com/MichaelMure/git-bug/termui"
8 "github.com/MichaelMure/git-bug/util/interrupt"
9)
10
11func newTermUICommand() *cobra.Command {
12 env := newEnv()
13
14 cmd := &cobra.Command{
15 Use: "termui",
16 Aliases: []string{"tui"},
17 Short: "Launch the terminal UI.",
18 PreRunE: loadRepoEnsureUser(env),
19 RunE: func(cmd *cobra.Command, args []string) error {
20 return runTermUI(env)
21 },
22 }
23
24 return cmd
25}
26
27func runTermUI(env *Env) error {
28 backend, err := cache.NewRepoCache(env.repo)
29 if err != nil {
30 return err
31 }
32 defer backend.Close()
33 interrupt.RegisterCleaner(backend.Close)
34
35 return termui.Run(backend)
36}