package cli import ( "context" "fmt" "os" "github.com/urfave/cli/v3" ) func listCommand() *cli.Command { return &cli.Command{ Name: "list", Aliases: []string{"ls"}, Usage: "list secrets under a path (e.g. `vault-tui list secret/team/`)", ArgsUsage: "", Flags: []cli.Flag{&cli.BoolFlag{Name: "json"}}, Action: func(ctx context.Context, cmd *cli.Command) error { a, err := appFrom(ctx) if err != nil { return err } if cmd.Args().Len() == 0 { return fmt.Errorf("usage: vault-tui list ") } if _, err := a.EnsureLoggedIn(ctx, cmd.String("token")); err != nil { return err } svc := a.Service() mount, rel, err := splitMountPath(ctx, svc, cmd.Args().First()) if err != nil { return err } l, err := svc.KV.List(ctx, mount, rel) if err != nil { return err } if cmd.Bool("json") { return printJSON(os.Stdout, l) } for _, d := range l.Dirs { fmt.Println(d) } for _, f := range l.Leaves { fmt.Println(f) } return nil }, } }