embed frontend

This commit is contained in:
0xJacky 2022-02-18 00:01:27 +08:00
parent 882fe8c074
commit d09f484790
86 changed files with 884 additions and 12326 deletions

60
settings/settings.go Normal file
View file

@ -0,0 +1,60 @@
package settings
import (
"gopkg.in/ini.v1"
"log"
"os"
"path"
)
var Conf *ini.File
type Server struct {
HttpPort string
RunMode string
WebSocketToken string
JwtSecret string
HTTPChallengePort string
Email string
}
var ServerSettings = &Server{}
var DataDir string
var confPath string
func Init(dataDir string) {
DataDir = dataDir
confPath = path.Join(dataDir, "app.ini")
if _, err := os.Stat(confPath); os.IsNotExist(err) {
confPath = path.Join(dataDir, "app.example.ini")
}
Setup()
}
func Setup() {
var err error
Conf, err = ini.Load(confPath)
if err != nil {
log.Fatalf("setting.Setup, fail to parse '%s': %v", confPath, err)
}
mapTo("server", ServerSettings)
}
func mapTo(section string, v interface{}) {
err := Conf.Section(section).MapTo(v)
if err != nil {
log.Fatalf("Cfg.MapTo %s err: %v", section, err)
}
}
func Save() (err error) {
confPath = path.Join(DataDir, "app.ini")
err = Conf.SaveTo(confPath)
if err != nil {
return
}
Setup()
return
}