soft-serve

Fork https://github.com/charmbracelet/soft-serve

git clone git://git.lin.moe/fork/soft-serve.git

 1package cmd
 2
 3import (
 4	"github.com/charmbracelet/soft-serve/pkg/backend"
 5	"github.com/spf13/cobra"
 6)
 7
 8func mirrorCommand() *cobra.Command {
 9	cmd := &cobra.Command{
10		Use:               "mirror REPOSITORY [true|false]",
11		Short:             "Set or get a repository mirror property",
12		Args:              cobra.RangeArgs(1, 2),
13		PersistentPreRunE: checkIfReadable,
14		RunE: func(cmd *cobra.Command, args []string) error {
15			ctx := cmd.Context()
16			be := backend.FromContext(ctx)
17			rn := args[0]
18
19			switch len(args) {
20			case 1:
21				isMirror, err := be.IsMirror(ctx, rn)
22				if err != nil {
23					return err
24				}
25
26				cmd.Println(isMirror)
27			case 2:
28				if err := checkIfCollab(cmd, args); err != nil {
29					return err
30				}
31
32				isMirror := args[1] == "true"
33				if err := be.SetMirror(ctx, rn, isMirror); err != nil {
34					return err
35				}
36			}
37
38			return nil
39		},
40	}
41
42	return cmd
43}