mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-12 02:45:49 +02:00
60 lines
1.1 KiB
Go
60 lines
1.1 KiB
Go
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
|
|
}
|