game_sync/tools/xlsx2proto/config.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)
}