hidden.go

 1package cmd
 2
 3import (
 4	"github.com/charmbracelet/soft-serve/pkg/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		PersistentPreRunE: checkIfReadable,
15		RunE: func(cmd *cobra.Command, args []string) error {
16			ctx := cmd.Context()
17			be := backend.FromContext(ctx)
18			repo := args[0]
19			switch len(args) {
20			case 1:
21				hidden, err := be.IsHidden(ctx, repo)
22				if err != nil {
23					return err //nolint:wrapcheck
24				}
25
26				cmd.Println(hidden)
27			case 2:
28				if err := checkIfCollab(cmd, args); err != nil {
29					return err
30				}
31
32				hidden := args[1] == "true"
33				if err := be.SetHidden(ctx, repo, hidden); err != nil {
34					return err //nolint:wrapcheck
35				}
36			}
37
38			return nil
39		},
40	}
41
42	return cmd
43}