package static

import (
	"embed"
	"fmt"
	"os"
)
import _ "embed"

//go:embed *.html
var pageList embed.FS

//go:embed img/*.*
var imgList embed.FS

//go:embed css/*.css
var cssList embed.FS

//go:embed js/*.js
var jsList embed.FS

var pageMap = initPageMap()
var imgMap = initImgMap()
var cssMap = initCssMap()
var jsMap = initJsMap()

func initPageMap() map[string][]byte {
	list, err := pageList.ReadDir(".")
	//list, err := fs.ReadDir(multiCf, ".")
	if err != nil {
		os.Exit(-1)
		return nil
	}

	var dataMap = make(map[string][]byte, len(list))
	for _, file := range list {
		dataMap[file.Name()] = initHtml(file.Name())
	}

	return dataMap
}

func initImgMap() map[string][]byte {
	list, err := imgList.ReadDir("img")
	if err != nil {
		os.Exit(-1)
		return nil
	}

	var dataMap = make(map[string][]byte, len(list))
	for _, file := range list {
		//读取配置文件
		data, err := imgList.ReadFile("img/" + file.Name())
		if err == nil {
			dataMap[file.Name()] = data
		}
	}

	return dataMap
}

func initCssMap() map[string][]byte {
	list, err := cssList.ReadDir("css")
	if err != nil {
		os.Exit(-1)
		return nil
	}

	var dataMap = make(map[string][]byte, len(list))
	for _, file := range list {
		//读取配置文件
		data, err := cssList.ReadFile("css/" + file.Name())
		if err == nil {
			dataMap[file.Name()] = data
		}
	}

	return dataMap
}

func initJsMap() map[string][]byte {
	list, err := jsList.ReadDir("js")
	if err != nil {
		os.Exit(-1)
		return nil
	}

	var dataMap = make(map[string][]byte, len(list))
	for _, file := range list {
		//读取配置文件
		data, err := jsList.ReadFile("js/" + file.Name())
		if err == nil {
			dataMap[file.Name()] = data
		}
	}

	return dataMap
}

func initHtml(fileName string) []byte {
	//读取配置文件
	data, err := pageList.ReadFile(fileName)
	if err != nil {
		fmt.Println(err)
	}

	return data
}