1package cmd
 2
 3import (
 4	"github.com/charmbracelet/soft-serve/server/backend"
 5	"github.com/spf13/cobra"
 6)
 7
 8// listCommand returns a command that list file or directory at path.
 9func listCommand() *cobra.Command {
10	listCmd := &cobra.Command{
11		Use:     "list",
12		Aliases: []string{"ls"},
13		Short:   "List repositories.",
14		Args:    cobra.NoArgs,
15		RunE: func(cmd *cobra.Command, args []string) error {
16			cfg, s := fromContext(cmd)
17			repos, err := cfg.Backend.Repositories()
18			if err != nil {
19				return err
20			}
21			for _, r := range repos {
22				if cfg.Backend.AccessLevel(r.Name(), s.PublicKey()) >= backend.ReadOnlyAccess {
23					cmd.Println(r.Name())
24				}
25			}
26			return nil
27		},
28	}
29	return listCmd
30}