1package cmd
 2
 3import (
 4	"github.com/charmbracelet/soft-serve/server/backend"
 5	"github.com/spf13/cobra"
 6)
 7
 8func hiddenCommand() *cobra.Command {
 9	cmd := &cobra.Command{
10		Use:     "hidden REPOSITORY [TRUE|FALSE]",
11		Short:   "Hide or unhide a repository",
12		Aliases: []string{"hide"},
13		Args:    cobra.MinimumNArgs(1),
14		RunE: func(cmd *cobra.Command, args []string) error {
15			ctx := cmd.Context()
16			be := backend.FromContext(ctx)
17			repo := args[0]
18			switch len(args) {
19			case 1:
20				if err := checkIfReadable(cmd, args); err != nil {
21					return err
22				}
23
24				hidden, err := be.IsHidden(ctx, repo)
25				if err != nil {
26					return err
27				}
28
29				cmd.Println(hidden)
30			case 2:
31				if err := checkIfCollab(cmd, args); err != nil {
32					return err
33				}
34
35				hidden := args[1] == "true"
36				if err := be.SetHidden(ctx, repo, hidden); err != nil {
37					return err
38				}
39			}
40
41			return nil
42		},
43	}
44
45	return cmd
46}