penguin/monok8s

k8s image for Mono Gateway Dev Kit

clitools/pkg/assets/render.go

raw ยท 786 bytes

package assets

import (
	"fmt"
	"io"
	"path/filepath"
	"sort"
)

func PrintCRDs(out io.Writer) error {
	entries, err := CRDs.ReadDir("crds")
	if err != nil {
		return err
	}

	names := make([]string, 0, len(entries))
	for _, entry := range entries {
		if entry.IsDir() {
			continue
		}
		if filepath.Ext(entry.Name()) != ".yaml" {
			continue
		}
		names = append(names, entry.Name())
	}

	sort.Strings(names)

	for _, name := range names {
		b, err := CRDs.ReadFile("crds/" + name)
		if err != nil {
			return err
		}

		if _, err := fmt.Fprintln(out, "---"); err != nil {
			return err
		}
		if _, err := out.Write(b); err != nil {
			return err
		}
		if len(b) == 0 || b[len(b)-1] != '\n' {
			if _, err := fmt.Fprintln(out); err != nil {
				return err
			}
		}
	}

	return nil
}