package util import ( "io" "io/fs" "log" "os" "strings" "gopkg.in/yaml.v2" ) func DefaultAssets() (fs.FS, error) { rootFS, err := os.OpenRoot("assets") if err != nil { return nil, err } return rootFS.FS(), nil } func ReadBytes(assetFS fs.FS, name string) ([]byte, error) { f, err := assetFS.Open(name) if err != nil { return nil, err } defer f.Close() return io.ReadAll(f) } func ReadString(assetFS fs.FS, name string) (string, error) { b, err := ReadBytes(assetFS, name) if err != nil { return "", err } return strings.TrimSpace(string(b)), nil } func ReadYAML(assetFS fs.FS, name string, out any) error { log.Printf("ASSET: Read YAML %s", name) f, err := assetFS.Open(name) if err != nil { return err } defer f.Close() return yaml.NewDecoder(f).Decode(out) }