...
1 package main
2
3 import (
4 "flag"
5 "fmt"
6 "os"
7
8 "sigs.k8s.io/kustomize/kyaml/kio"
9
10 "edge-infra.dev/hack/build/ci"
11 "edge-infra.dev/pkg/edge/gitops/fns/normalizer"
12 "edge-infra.dev/pkg/edge/gitops/fns/trimmer"
13 "edge-infra.dev/pkg/edge/yamlfmt"
14 "edge-infra.dev/pkg/lib/build/bazel"
15 )
16
17 func init() {
18 wd, err := bazel.ResolveWd()
19 if err != nil {
20 fmt.Fprintln(os.Stderr, "failed to determine current working directory:", err)
21 os.Exit(1)
22 }
23
24 if err := os.Chdir(wd); err != nil {
25 fmt.Fprintln(os.Stderr, "failed to cd to current working directory:", err)
26 os.Exit(1)
27 }
28 }
29
30 func main() {
31 var dir string
32 flag.StringVar(&dir, "directory", ci.ManifestsDir, "path to manifest directory to format")
33 flag.Parse()
34
35 if dir == "" {
36 fmt.Fprintln(os.Stderr, "a directory must be provided using --directory")
37 os.Exit(1)
38 }
39
40 ignorer, err := yamlfmt.NewIgnorer(dir)
41 if err != nil {
42 fmt.Println(err)
43 fmt.Printf("could not load ignorer with path %s\n", dir)
44 os.Exit(1)
45 }
46
47 n := normalizer.Normalizer{}
48 tr := trimmer.Trimmer{}
49 rw := kio.LocalPackageReadWriter{
50 PackagePath: dir,
51 FileSkipFunc: ignorer.IgnorePath,
52 }
53
54 err = kio.Pipeline{
55 Inputs: []kio.Reader{&rw},
56 Outputs: []kio.Writer{&rw},
57 Filters: []kio.Filter{
58 kio.FilterFunc(tr.Run),
59 kio.FilterFunc(n.Run),
60 },
61 }.Execute()
62
63 if err != nil {
64 fmt.Fprintf(os.Stderr, "failed to format manifests: %v", err)
65 os.Exit(1)
66 }
67 }
68
View as plain text