...
1 package teamster
2
3 import (
4 "context"
5 "fmt"
6 "strings"
7
8 "sigs.k8s.io/yaml"
9
10 "edge-infra.dev/pkg/lib/cli/sink"
11 "edge-infra.dev/pkg/tools/github/ghx"
12 )
13
14 func NewCmdResolve() *sink.Command {
15 var (
16 ref, repo, org string
17 gh = &ghx.GHX{Optional: true}
18 )
19
20 cmd := &sink.Command{
21 Use: "resolve [flags] <teams file>",
22 Short: "Resolve full team configuration",
23 Flags: commonFlags(&org, &repo, &ref),
24 Extensions: []sink.Extension{gh},
25 Exec: func(ctx context.Context, r sink.Run) error {
26 if len(r.Args()) < 1 {
27 return fmt.Errorf("path to teams file is required")
28 }
29
30 t, err := getTeam(ctx, r.Args()[0], org, repo, ref, gh.V3)
31 if err != nil {
32 return err
33 }
34
35 data, err := yaml.Marshal(t)
36 if err != nil {
37 return err
38 }
39 fmt.Fprintln(r.Out(), strings.TrimSpace(string(data)))
40
41 return nil
42 },
43 }
44
45 return cmd
46 }
47
View as plain text