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 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}