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}