add global config support
This commit is contained in:
parent
cd1e1a42f3
commit
34d553a890
23 changed files with 1682 additions and 343 deletions
70
gen/init.go
70
gen/init.go
|
|
@ -87,27 +87,6 @@ func Add80SiteConfig(cfg *config.Config, cdb *db.ConfigDB) error {
|
|||
return err
|
||||
}
|
||||
|
||||
/*
|
||||
originConfig := db.CaddyfileConfig{
|
||||
Domain: ":80",
|
||||
TmplType: "file_server",
|
||||
FileServer: db.FileServerConfig{
|
||||
FileDirPath: cfg.Server.CaddyDir + "pages/demo",
|
||||
EnableBrowser: false,
|
||||
},
|
||||
Log: db.LogConfig{
|
||||
EnableLog: true,
|
||||
LogDomain: ":80",
|
||||
},
|
||||
ErrorPage: db.ErrorPageConfig{
|
||||
EnableErrorPage: true,
|
||||
},
|
||||
Encode: db.EncodeConfig{
|
||||
EnableEncode: true,
|
||||
},
|
||||
}
|
||||
*/
|
||||
|
||||
originGobData, err := EncodeGobConfig(siteConfig)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -150,3 +129,52 @@ func Add80SiteConfig(cfg *config.Config, cdb *db.ConfigDB) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
// 读入全局配置模板
|
||||
func ReadGlobalTmpl(dir string) ([]byte, error) {
|
||||
// 读取目录下的caddyfile文件
|
||||
|
||||
content, err := os.ReadFile(filepath.Join(dir, "gtmpl", "caddyfile"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
fmt.Printf("Read global template: %s\n", "caddyfile")
|
||||
return content, nil
|
||||
}
|
||||
|
||||
func SetGlobalConfig(cfg *config.Config, cdb *db.ConfigDB) error {
|
||||
var config = DefaultGlobalConfig
|
||||
paramsGob, err := EncodeGobConfig(config)
|
||||
if err != nil {
|
||||
return fmt.Errorf("encode gob config error: %w", err)
|
||||
}
|
||||
|
||||
// 取出数据库内的tmpl
|
||||
tmplContent, err := ReadGlobalTmpl(cfg.Server.CaddyDir)
|
||||
if err != nil {
|
||||
return fmt.Errorf("get global template error: %w", err)
|
||||
}
|
||||
|
||||
renderedContent, err := RenderGlobalConfig(paramsGob, tmplContent)
|
||||
if err != nil {
|
||||
return fmt.Errorf("render global config error: %w", err)
|
||||
}
|
||||
|
||||
//回写条目到数据库
|
||||
err = cdb.SaveGlobalConfig(db.GlobalConfig{
|
||||
Filename: "caddyfile",
|
||||
Params: paramsGob,
|
||||
TmplContent: tmplContent,
|
||||
RenderedContent: renderedContent,
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("save global config error: %w", err)
|
||||
}
|
||||
|
||||
err = os.WriteFile(cfg.Server.CaddyDir+"Caddyfile", renderedContent, 0644)
|
||||
if err != nil {
|
||||
return fmt.Errorf("write Caddyfile error: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue