mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 20:36:07 +01: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:
		
							
								
								
									
										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()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user