Skip to content

Commit efe77ee

Browse files
Unified custom config creation (#16012)
* Unified custom config creation. * Fixed log message. Co-authored-by: techknowlogick <[email protected]>
1 parent 2a99804 commit efe77ee

File tree

3 files changed

+39
-82
lines changed

3 files changed

+39
-82
lines changed

cmd/web.go

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import (
1616
"code.gitea.io/gitea/modules/graceful"
1717
"code.gitea.io/gitea/modules/log"
1818
"code.gitea.io/gitea/modules/setting"
19-
"code.gitea.io/gitea/modules/util"
2019
"code.gitea.io/gitea/routers"
2120
"code.gitea.io/gitea/routers/routes"
2221

@@ -152,19 +151,6 @@ func setPort(port string) error {
152151
case setting.FCGI:
153152
case setting.FCGIUnix:
154153
default:
155-
// Save LOCAL_ROOT_URL if port changed
156-
cfg := ini.Empty()
157-
isFile, err := util.IsFile(setting.CustomConf)
158-
if err != nil {
159-
log.Fatal("Unable to check if %s is a file", err)
160-
}
161-
if isFile {
162-
// Keeps custom settings if there is already something.
163-
if err := cfg.Append(setting.CustomConf); err != nil {
164-
return fmt.Errorf("Failed to load custom conf '%s': %v", setting.CustomConf, err)
165-
}
166-
}
167-
168154
defaultLocalURL := string(setting.Protocol) + "://"
169155
if setting.HTTPAddr == "0.0.0.0" {
170156
defaultLocalURL += "localhost"
@@ -173,10 +159,10 @@ func setPort(port string) error {
173159
}
174160
defaultLocalURL += ":" + setting.HTTPPort + "/"
175161

176-
cfg.Section("server").Key("LOCAL_ROOT_URL").SetValue(defaultLocalURL)
177-
if err := cfg.SaveTo(setting.CustomConf); err != nil {
178-
return fmt.Errorf("Error saving generated LOCAL_ROOT_URL to custom config: %v", err)
179-
}
162+
// Save LOCAL_ROOT_URL if port changed
163+
setting.CreateOrAppendToCustomConf(func(cfg *ini.File) {
164+
cfg.Section("server").Key("LOCAL_ROOT_URL").SetValue(defaultLocalURL)
165+
})
180166
}
181167
return nil
182168
}

modules/setting/lfs.go

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,11 @@ package setting
66

77
import (
88
"encoding/base64"
9-
"os"
10-
"path/filepath"
119
"time"
1210

1311
"code.gitea.io/gitea/modules/generate"
1412
"code.gitea.io/gitea/modules/git"
1513
"code.gitea.io/gitea/modules/log"
16-
"code.gitea.io/gitea/modules/util"
1714

1815
ini "gopkg.in/ini.v1"
1916
)
@@ -64,27 +61,9 @@ func newLFSService() {
6461
}
6562

6663
// Save secret
67-
cfg := ini.Empty()
68-
isFile, err := util.IsFile(CustomConf)
69-
if err != nil {
70-
log.Error("Unable to check if %s is a file. Error: %v", CustomConf, err)
71-
}
72-
if isFile {
73-
// Keeps custom settings if there is already something.
74-
if err := cfg.Append(CustomConf); err != nil {
75-
log.Error("Failed to load custom conf '%s': %v", CustomConf, err)
76-
}
77-
}
78-
79-
cfg.Section("server").Key("LFS_JWT_SECRET").SetValue(LFS.JWTSecretBase64)
80-
81-
if err := os.MkdirAll(filepath.Dir(CustomConf), os.ModePerm); err != nil {
82-
log.Fatal("Failed to create '%s': %v", CustomConf, err)
83-
}
84-
if err := cfg.SaveTo(CustomConf); err != nil {
85-
log.Fatal("Error saving generated JWT Secret to custom config: %v", err)
86-
return
87-
}
64+
CreateOrAppendToCustomConf(func(cfg *ini.File) {
65+
cfg.Section("server").Key("LFS_JWT_SECRET").SetValue(LFS.JWTSecretBase64)
66+
})
8867
}
8968
}
9069
}

modules/setting/setting.go

Lines changed: 32 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -793,27 +793,10 @@ func NewContext() {
793793
log.Fatal("error generating JWT secret: %v", err)
794794
return
795795
}
796-
cfg := ini.Empty()
797-
isFile, err := util.IsFile(CustomConf)
798-
if err != nil {
799-
log.Error("Unable to check if %s is a file. Error: %v", CustomConf, err)
800-
}
801-
if isFile {
802-
if err := cfg.Append(CustomConf); err != nil {
803-
log.Error("failed to load custom conf %s: %v", CustomConf, err)
804-
return
805-
}
806-
}
807-
cfg.Section("oauth2").Key("JWT_SECRET").SetValue(OAuth2.JWTSecretBase64)
808796

809-
if err := os.MkdirAll(filepath.Dir(CustomConf), os.ModePerm); err != nil {
810-
log.Fatal("failed to create '%s': %v", CustomConf, err)
811-
return
812-
}
813-
if err := cfg.SaveTo(CustomConf); err != nil {
814-
log.Fatal("error saving generating JWT secret to custom config: %v", err)
815-
return
816-
}
797+
CreateOrAppendToCustomConf(func(cfg *ini.File) {
798+
cfg.Section("oauth2").Key("JWT_SECRET").SetValue(OAuth2.JWTSecretBase64)
799+
})
817800
}
818801
}
819802

@@ -1075,26 +1058,9 @@ func loadOrGenerateInternalToken(sec *ini.Section) string {
10751058
}
10761059

10771060
// Save secret
1078-
cfgSave := ini.Empty()
1079-
isFile, err := util.IsFile(CustomConf)
1080-
if err != nil {
1081-
log.Error("Unable to check if %s is a file. Error: %v", CustomConf, err)
1082-
}
1083-
if isFile {
1084-
// Keeps custom settings if there is already something.
1085-
if err := cfgSave.Append(CustomConf); err != nil {
1086-
log.Error("Failed to load custom conf '%s': %v", CustomConf, err)
1087-
}
1088-
}
1089-
1090-
cfgSave.Section("security").Key("INTERNAL_TOKEN").SetValue(token)
1091-
1092-
if err := os.MkdirAll(filepath.Dir(CustomConf), os.ModePerm); err != nil {
1093-
log.Fatal("Failed to create '%s': %v", CustomConf, err)
1094-
}
1095-
if err := cfgSave.SaveTo(CustomConf); err != nil {
1096-
log.Fatal("Error saving generated INTERNAL_TOKEN to custom config: %v", err)
1097-
}
1061+
CreateOrAppendToCustomConf(func(cfg *ini.File) {
1062+
cfg.Section("security").Key("INTERNAL_TOKEN").SetValue(token)
1063+
})
10981064
}
10991065
return token
11001066
}
@@ -1160,6 +1126,32 @@ func MakeManifestData(appName string, appURL string, absoluteAssetURL string) []
11601126
return bytes
11611127
}
11621128

1129+
// CreateOrAppendToCustomConf creates or updates the custom config.
1130+
// Use the callback to set individual values.
1131+
func CreateOrAppendToCustomConf(callback func(cfg *ini.File)) {
1132+
cfg := ini.Empty()
1133+
isFile, err := util.IsFile(CustomConf)
1134+
if err != nil {
1135+
log.Error("Unable to check if %s is a file. Error: %v", CustomConf, err)
1136+
}
1137+
if isFile {
1138+
if err := cfg.Append(CustomConf); err != nil {
1139+
log.Error("failed to load custom conf %s: %v", CustomConf, err)
1140+
return
1141+
}
1142+
}
1143+
1144+
callback(cfg)
1145+
1146+
if err := os.MkdirAll(filepath.Dir(CustomConf), os.ModePerm); err != nil {
1147+
log.Fatal("failed to create '%s': %v", CustomConf, err)
1148+
return
1149+
}
1150+
if err := cfg.SaveTo(CustomConf); err != nil {
1151+
log.Fatal("error saving to custom config: %v", err)
1152+
}
1153+
}
1154+
11631155
// NewServices initializes the services
11641156
func NewServices() {
11651157
InitDBConfig()

0 commit comments

Comments
 (0)