mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-25 17:30:36 +00:00
Unified custom config creation (#16012)
* Unified custom config creation. * Fixed log message. Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
parent
2a998048ef
commit
efe77eec85
3 changed files with 39 additions and 82 deletions
22
cmd/web.go
22
cmd/web.go
|
@ -16,7 +16,6 @@ import (
|
||||||
"code.gitea.io/gitea/modules/graceful"
|
"code.gitea.io/gitea/modules/graceful"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/util"
|
|
||||||
"code.gitea.io/gitea/routers"
|
"code.gitea.io/gitea/routers"
|
||||||
"code.gitea.io/gitea/routers/routes"
|
"code.gitea.io/gitea/routers/routes"
|
||||||
|
|
||||||
|
@ -152,19 +151,6 @@ func setPort(port string) error {
|
||||||
case setting.FCGI:
|
case setting.FCGI:
|
||||||
case setting.FCGIUnix:
|
case setting.FCGIUnix:
|
||||||
default:
|
default:
|
||||||
// Save LOCAL_ROOT_URL if port changed
|
|
||||||
cfg := ini.Empty()
|
|
||||||
isFile, err := util.IsFile(setting.CustomConf)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal("Unable to check if %s is a file", err)
|
|
||||||
}
|
|
||||||
if isFile {
|
|
||||||
// Keeps custom settings if there is already something.
|
|
||||||
if err := cfg.Append(setting.CustomConf); err != nil {
|
|
||||||
return fmt.Errorf("Failed to load custom conf '%s': %v", setting.CustomConf, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
defaultLocalURL := string(setting.Protocol) + "://"
|
defaultLocalURL := string(setting.Protocol) + "://"
|
||||||
if setting.HTTPAddr == "0.0.0.0" {
|
if setting.HTTPAddr == "0.0.0.0" {
|
||||||
defaultLocalURL += "localhost"
|
defaultLocalURL += "localhost"
|
||||||
|
@ -173,10 +159,10 @@ func setPort(port string) error {
|
||||||
}
|
}
|
||||||
defaultLocalURL += ":" + setting.HTTPPort + "/"
|
defaultLocalURL += ":" + setting.HTTPPort + "/"
|
||||||
|
|
||||||
cfg.Section("server").Key("LOCAL_ROOT_URL").SetValue(defaultLocalURL)
|
// Save LOCAL_ROOT_URL if port changed
|
||||||
if err := cfg.SaveTo(setting.CustomConf); err != nil {
|
setting.CreateOrAppendToCustomConf(func(cfg *ini.File) {
|
||||||
return fmt.Errorf("Error saving generated LOCAL_ROOT_URL to custom config: %v", err)
|
cfg.Section("server").Key("LOCAL_ROOT_URL").SetValue(defaultLocalURL)
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,14 +6,11 @@ package setting
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/modules/generate"
|
"code.gitea.io/gitea/modules/generate"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/util"
|
|
||||||
|
|
||||||
ini "gopkg.in/ini.v1"
|
ini "gopkg.in/ini.v1"
|
||||||
)
|
)
|
||||||
|
@ -64,27 +61,9 @@ func newLFSService() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save secret
|
// Save secret
|
||||||
cfg := ini.Empty()
|
CreateOrAppendToCustomConf(func(cfg *ini.File) {
|
||||||
isFile, err := util.IsFile(CustomConf)
|
cfg.Section("server").Key("LFS_JWT_SECRET").SetValue(LFS.JWTSecretBase64)
|
||||||
if err != nil {
|
})
|
||||||
log.Error("Unable to check if %s is a file. Error: %v", CustomConf, err)
|
|
||||||
}
|
|
||||||
if isFile {
|
|
||||||
// Keeps custom settings if there is already something.
|
|
||||||
if err := cfg.Append(CustomConf); err != nil {
|
|
||||||
log.Error("Failed to load custom conf '%s': %v", CustomConf, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cfg.Section("server").Key("LFS_JWT_SECRET").SetValue(LFS.JWTSecretBase64)
|
|
||||||
|
|
||||||
if err := os.MkdirAll(filepath.Dir(CustomConf), os.ModePerm); err != nil {
|
|
||||||
log.Fatal("Failed to create '%s': %v", CustomConf, err)
|
|
||||||
}
|
|
||||||
if err := cfg.SaveTo(CustomConf); err != nil {
|
|
||||||
log.Fatal("Error saving generated JWT Secret to custom config: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -793,27 +793,10 @@ func NewContext() {
|
||||||
log.Fatal("error generating JWT secret: %v", err)
|
log.Fatal("error generating JWT secret: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
cfg := ini.Empty()
|
|
||||||
isFile, err := util.IsFile(CustomConf)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("Unable to check if %s is a file. Error: %v", CustomConf, err)
|
|
||||||
}
|
|
||||||
if isFile {
|
|
||||||
if err := cfg.Append(CustomConf); err != nil {
|
|
||||||
log.Error("failed to load custom conf %s: %v", CustomConf, err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cfg.Section("oauth2").Key("JWT_SECRET").SetValue(OAuth2.JWTSecretBase64)
|
|
||||||
|
|
||||||
if err := os.MkdirAll(filepath.Dir(CustomConf), os.ModePerm); err != nil {
|
CreateOrAppendToCustomConf(func(cfg *ini.File) {
|
||||||
log.Fatal("failed to create '%s': %v", CustomConf, err)
|
cfg.Section("oauth2").Key("JWT_SECRET").SetValue(OAuth2.JWTSecretBase64)
|
||||||
return
|
})
|
||||||
}
|
|
||||||
if err := cfg.SaveTo(CustomConf); err != nil {
|
|
||||||
log.Fatal("error saving generating JWT secret to custom config: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1075,26 +1058,9 @@ func loadOrGenerateInternalToken(sec *ini.Section) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save secret
|
// Save secret
|
||||||
cfgSave := ini.Empty()
|
CreateOrAppendToCustomConf(func(cfg *ini.File) {
|
||||||
isFile, err := util.IsFile(CustomConf)
|
cfg.Section("security").Key("INTERNAL_TOKEN").SetValue(token)
|
||||||
if err != nil {
|
})
|
||||||
log.Error("Unable to check if %s is a file. Error: %v", CustomConf, err)
|
|
||||||
}
|
|
||||||
if isFile {
|
|
||||||
// Keeps custom settings if there is already something.
|
|
||||||
if err := cfgSave.Append(CustomConf); err != nil {
|
|
||||||
log.Error("Failed to load custom conf '%s': %v", CustomConf, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
cfgSave.Section("security").Key("INTERNAL_TOKEN").SetValue(token)
|
|
||||||
|
|
||||||
if err := os.MkdirAll(filepath.Dir(CustomConf), os.ModePerm); err != nil {
|
|
||||||
log.Fatal("Failed to create '%s': %v", CustomConf, err)
|
|
||||||
}
|
|
||||||
if err := cfgSave.SaveTo(CustomConf); err != nil {
|
|
||||||
log.Fatal("Error saving generated INTERNAL_TOKEN to custom config: %v", err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return token
|
return token
|
||||||
}
|
}
|
||||||
|
@ -1160,6 +1126,32 @@ func MakeManifestData(appName string, appURL string, absoluteAssetURL string) []
|
||||||
return bytes
|
return bytes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CreateOrAppendToCustomConf creates or updates the custom config.
|
||||||
|
// Use the callback to set individual values.
|
||||||
|
func CreateOrAppendToCustomConf(callback func(cfg *ini.File)) {
|
||||||
|
cfg := ini.Empty()
|
||||||
|
isFile, err := util.IsFile(CustomConf)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Unable to check if %s is a file. Error: %v", CustomConf, err)
|
||||||
|
}
|
||||||
|
if isFile {
|
||||||
|
if err := cfg.Append(CustomConf); err != nil {
|
||||||
|
log.Error("failed to load custom conf %s: %v", CustomConf, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
callback(cfg)
|
||||||
|
|
||||||
|
if err := os.MkdirAll(filepath.Dir(CustomConf), os.ModePerm); err != nil {
|
||||||
|
log.Fatal("failed to create '%s': %v", CustomConf, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err := cfg.SaveTo(CustomConf); err != nil {
|
||||||
|
log.Fatal("error saving to custom config: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// NewServices initializes the services
|
// NewServices initializes the services
|
||||||
func NewServices() {
|
func NewServices() {
|
||||||
InitDBConfig()
|
InitDBConfig()
|
||||||
|
|
Loading…
Reference in a new issue