72 lines
1.3 KiB
Go
72 lines
1.3 KiB
Go
package setting
|
|
|
|
import (
|
|
"github.com/go-ini/ini"
|
|
"log"
|
|
"time"
|
|
)
|
|
|
|
type App struct {
|
|
JwtSecret string
|
|
PageSize int
|
|
RuntimeRootPath string
|
|
|
|
ImagePrefixUrl string
|
|
ImageSavePath string
|
|
ImageMaxSize int
|
|
ImageAllowExts []string
|
|
|
|
LogSavePath string
|
|
LogSavename string
|
|
LogFileExt string
|
|
TimeFormat string
|
|
}
|
|
|
|
var AppSetting = &App{}
|
|
|
|
type Server struct {
|
|
RunMode string
|
|
HttpPort int
|
|
ReadTimeout time.Duration
|
|
WriteTimeout time.Duration
|
|
}
|
|
|
|
var ServerSetting = &Server{}
|
|
|
|
type Database struct {
|
|
Type string
|
|
User string
|
|
Password string
|
|
Host string
|
|
Port string
|
|
Name string
|
|
TablePrefix string
|
|
}
|
|
|
|
var DatabaseSetting = &Database{}
|
|
|
|
func Setup() {
|
|
Cfg, err := ini.Load("conf/app.ini")
|
|
if err != nil {
|
|
log.Fatalf("Fail to parse 'conf/app.ini': %v", err)
|
|
}
|
|
|
|
err = Cfg.Section("app").MapTo(AppSetting)
|
|
if err != nil {
|
|
log.Fatalf("Cfg.MapTo AppSetting err: %v", err)
|
|
}
|
|
|
|
err = Cfg.Section("server").MapTo(ServerSetting)
|
|
if err != nil {
|
|
log.Fatalf("Cfg.MapTo ServerSetting err: %v", err)
|
|
}
|
|
|
|
ServerSetting.ReadTimeout *= time.Second
|
|
ServerSetting.WriteTimeout *= time.Second
|
|
|
|
err = Cfg.Section("database").MapTo(DatabaseSetting)
|
|
if err != nil {
|
|
log.Fatalf("Cfg.MapTo DatabaseSetting err: %v", err)
|
|
}
|
|
}
|