61 lines
963 B
Go
61 lines
963 B
Go
package web
|
|
|
|
import (
|
|
"adams549659584/go-proxy-bingai/common"
|
|
"embed"
|
|
"io/fs"
|
|
"net/http"
|
|
"path/filepath"
|
|
)
|
|
|
|
//go:embed *
|
|
var webFS embed.FS
|
|
|
|
var WEB_PATH_MAP = make(map[string]bool)
|
|
|
|
func init() {
|
|
var err error
|
|
if common.IS_DEBUG_MODE {
|
|
err = initWebPathMapByDir()
|
|
} else {
|
|
err = initWebPathMapByFS()
|
|
}
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func initWebPathMapByDir() error {
|
|
err := filepath.WalkDir("web", func(path string, d fs.DirEntry, err error) error {
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if !d.IsDir() {
|
|
WEB_PATH_MAP["/"+path] = true
|
|
}
|
|
return nil
|
|
})
|
|
return err
|
|
}
|
|
|
|
func initWebPathMapByFS() error {
|
|
err := fs.WalkDir(webFS, ".", func(path string, d fs.DirEntry, err error) error {
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if !d.IsDir() {
|
|
WEB_PATH_MAP["/web/"+path] = true
|
|
}
|
|
return nil
|
|
})
|
|
return err
|
|
}
|
|
|
|
func GetWebFS() http.FileSystem {
|
|
if common.IS_DEBUG_MODE {
|
|
return http.Dir("web")
|
|
} else {
|
|
return http.FS(webFS)
|
|
}
|
|
}
|