aboutsummaryrefslogtreecommitdiffstats
path: root/modules/setting
diff options
context:
space:
mode:
authorKN4CK3R <KN4CK3R@users.noreply.github.com>2021-05-29 20:44:14 +0200
committerGitHub <noreply@github.com>2021-05-29 19:44:14 +0100
commitefe77eec85fd6524ceb66cacb35f054c2a180738 (patch)
tree775ab2184fdbc8e8c04ead2c27df4a6948aa9572 /modules/setting
parent2a998048efdf57a5ceacc9c6f4d2d6120494d2b7 (diff)
downloadgitea-efe77eec85fd6524ceb66cacb35f054c2a180738.tar.gz
gitea-efe77eec85fd6524ceb66cacb35f054c2a180738.zip
Unified custom config creation (#16012)
* Unified custom config creation. * Fixed log message. Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'modules/setting')
-rw-r--r--modules/setting/lfs.go27
-rw-r--r--modules/setting/setting.go72
2 files changed, 35 insertions, 64 deletions
diff --git a/modules/setting/lfs.go b/modules/setting/lfs.go
index ab475bbeb4..38c656fc29 100644
--- a/modules/setting/lfs.go
+++ b/modules/setting/lfs.go
@@ -6,14 +6,11 @@ package setting
import (
"encoding/base64"
- "os"
- "path/filepath"
"time"
"code.gitea.io/gitea/modules/generate"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
- "code.gitea.io/gitea/modules/util"
ini "gopkg.in/ini.v1"
)
@@ -64,27 +61,9 @@ func newLFSService() {
}
// Save secret
- 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 {
- // 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
- }
+ CreateOrAppendToCustomConf(func(cfg *ini.File) {
+ cfg.Section("server").Key("LFS_JWT_SECRET").SetValue(LFS.JWTSecretBase64)
+ })
}
}
}
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index ec8e64578b..c16520572d 100644
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -793,27 +793,10 @@ func NewContext() {
log.Fatal("error generating JWT secret: %v", err)
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 {
- log.Fatal("failed to create '%s': %v", CustomConf, err)
- return
- }
- if err := cfg.SaveTo(CustomConf); err != nil {
- log.Fatal("error saving generating JWT secret to custom config: %v", err)
- return
- }
+ CreateOrAppendToCustomConf(func(cfg *ini.File) {
+ cfg.Section("oauth2").Key("JWT_SECRET").SetValue(OAuth2.JWTSecretBase64)
+ })
}
}
@@ -1075,26 +1058,9 @@ func loadOrGenerateInternalToken(sec *ini.Section) string {
}
// Save secret
- cfgSave := 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 {
- // 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)
- }
+ CreateOrAppendToCustomConf(func(cfg *ini.File) {
+ cfg.Section("security").Key("INTERNAL_TOKEN").SetValue(token)
+ })
}
return token
}
@@ -1160,6 +1126,32 @@ func MakeManifestData(appName string, appURL string, absoluteAssetURL string) []
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
func NewServices() {
InitDBConfig()