mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 13:34:43 +01:00 
			
		
		
		
	* Improve install code to avoid low-level mistakes. If a user tries to do a re-install in a Gitea database, they gets a warning and double check. When Gitea runs, it never create empty app.ini automatically. Also some small (related) refactoring: * Refactor db.InitEngine related logic make it more clean (especially for the install code) * Move some i18n strings out from setting.go to make the setting.go can be easily maintained. * Show errors in CLI code if an incorrect app.ini is used. * APP_DATA_PATH is created when installing, and checked when starting (no empty directory is created any more).
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2021 The Gitea Authors. All rights reserved.
 | 
						|
// Use of this source code is governed by a MIT-style
 | 
						|
// license that can be found in the LICENSE file.
 | 
						|
 | 
						|
package install
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
 | 
						|
	"code.gitea.io/gitea/modules/log"
 | 
						|
	"code.gitea.io/gitea/modules/setting"
 | 
						|
	"code.gitea.io/gitea/modules/svg"
 | 
						|
	"code.gitea.io/gitea/modules/translation"
 | 
						|
	"code.gitea.io/gitea/routers/common"
 | 
						|
)
 | 
						|
 | 
						|
// PreloadSettings preloads the configuration to check if we need to run install
 | 
						|
func PreloadSettings(ctx context.Context) bool {
 | 
						|
	setting.LoadAllowEmpty()
 | 
						|
	if !setting.InstallLock {
 | 
						|
		log.Info("AppPath: %s", setting.AppPath)
 | 
						|
		log.Info("AppWorkPath: %s", setting.AppWorkPath)
 | 
						|
		log.Info("Custom path: %s", setting.CustomPath)
 | 
						|
		log.Info("Log path: %s", setting.LogRootPath)
 | 
						|
		log.Info("Configuration file: %s", setting.CustomConf)
 | 
						|
		log.Info("Prepare to run install page")
 | 
						|
		translation.InitLocales()
 | 
						|
		if setting.EnableSQLite3 {
 | 
						|
			log.Info("SQLite3 is supported")
 | 
						|
		}
 | 
						|
		setting.InitDBConfig()
 | 
						|
		setting.NewServicesForInstall()
 | 
						|
		svg.Init()
 | 
						|
	}
 | 
						|
 | 
						|
	return !setting.InstallLock
 | 
						|
}
 | 
						|
 | 
						|
// reloadSettings reloads the existing settings and starts up the database
 | 
						|
func reloadSettings(ctx context.Context) {
 | 
						|
	setting.LoadFromExisting()
 | 
						|
	setting.InitDBConfig()
 | 
						|
	if setting.InstallLock {
 | 
						|
		if err := common.InitDBEngine(ctx); err == nil {
 | 
						|
			log.Info("ORM engine initialization successful!")
 | 
						|
		} else {
 | 
						|
			log.Fatal("ORM engine initialization failed: %v", err)
 | 
						|
		}
 | 
						|
		svg.Init()
 | 
						|
	}
 | 
						|
}
 |