package embed

import (
	"encoding/base64"
	"os"
	"strings"
)

// ReadFile read the file embed.
func ReadFile(path string) ([]byte, error) {
	content, found := autogenFiles[path]
	if !found {
		return nil, os.ErrNotExist
	}
	return base64.StdEncoding.DecodeString(content)
}

// Walk every file with specified prefix.
func Walk(prefix string, f func(path string, data []byte) error) error {
	for path, content := range autogenFiles {
		if !strings.HasPrefix(path, prefix) {
			continue
		}

		data, err := base64.StdEncoding.DecodeString(content)
		if err != nil {
			return err
		}

		err = f(path, data)
		if err != nil {
			return err
		}
	}

	return nil
}
