84 lines
1.4 KiB
Go
84 lines
1.4 KiB
Go
// config
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"text/template"
|
|
|
|
"mongo.games.com/goserver/core"
|
|
)
|
|
|
|
var XlsxFiles = make(map[string]string)
|
|
|
|
var Config = Configuration{}
|
|
|
|
type Configuration struct {
|
|
WorkPath string
|
|
XlsxPath string
|
|
ProtoPath string
|
|
ProtoLuaPath string
|
|
GoFilePath string
|
|
TsFilePath string
|
|
ConvertToolPath string
|
|
CppFilePath string
|
|
DataPath string
|
|
ProtoFile string
|
|
}
|
|
|
|
func (this *Configuration) Name() string {
|
|
return "proto"
|
|
}
|
|
|
|
func (this *Configuration) Init() (err error) {
|
|
|
|
protoAbsPath := filepath.Join(this.WorkPath, this.ProtoPath)
|
|
err = os.MkdirAll(protoAbsPath, os.ModePerm)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
xlsxAbsPath := filepath.Join(this.WorkPath, this.XlsxPath)
|
|
var fis []os.DirEntry
|
|
fis, err = os.ReadDir(xlsxAbsPath)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
for _, v := range fis {
|
|
if !v.IsDir() {
|
|
if !strings.HasSuffix(v.Name(), ".xlsx") {
|
|
continue
|
|
}
|
|
|
|
pfAbs := filepath.Join(xlsxAbsPath, v.Name())
|
|
XlsxFiles[v.Name()] = pfAbs
|
|
}
|
|
}
|
|
|
|
wd, err := os.Getwd()
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
pattern := filepath.Join(wd, "templ", "*.templ")
|
|
funcMap := template.FuncMap{
|
|
"inc": func(n int) int {
|
|
n++
|
|
return n
|
|
},
|
|
}
|
|
templates, err = template.Must(template.New("mytempl").Funcs(funcMap).ParseGlob(pattern)).Parse("")
|
|
|
|
return
|
|
}
|
|
|
|
func (this *Configuration) Close() (err error) {
|
|
return
|
|
}
|
|
|
|
func init() {
|
|
core.RegistePackage(&Config)
|
|
}
|