1package repo
2
3import (
4 "github.com/charmbracelet/soft-serve/cmd"
5 "github.com/charmbracelet/soft-serve/pkg/access"
6 "github.com/charmbracelet/soft-serve/pkg/backend"
7 "github.com/charmbracelet/soft-serve/pkg/proto"
8 "github.com/spf13/cobra"
9)
10
11func mirrorCommand() *cobra.Command {
12 cmd := &cobra.Command{
13 Use: "is-mirror REPOSITORY",
14 Short: "Whether a repository is a mirror",
15 Args: cobra.ExactArgs(1),
16 RunE: func(co *cobra.Command, args []string) error {
17 ctx := co.Context()
18 be := backend.FromContext(ctx)
19 rn := args[0]
20 rr, err := be.Repository(ctx, rn)
21 if err != nil {
22 return err
23 }
24
25 if !cmd.CheckUserHasAccess(co, rr.Name(), access.ReadOnlyAccess) {
26 return proto.ErrUnauthorized
27 }
28
29 isMirror := rr.IsMirror()
30 co.Println(isMirror)
31 return nil
32 },
33 }
34
35 return cmd
36}