mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Use InitWorkPathAndCfgProvider for environment-to-ini to avoid unnecessary checks (#25480)
Fix #25481 The `InitWorkPathAndCommonConfig` calls `LoadCommonSettings` which does many checks like "current user is root or not". Some commands like "environment-to-ini" shouldn't do such check, because it might be run with "root" user at the moment (eg: the docker's setup script) ps: in the future, the docker's setup script should be improved to avoid Gitea's command running with "root"
This commit is contained in:
		@@ -88,7 +88,7 @@ func main() {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func runEnvironmentToIni(c *cli.Context) error {
 | 
					func runEnvironmentToIni(c *cli.Context) error {
 | 
				
			||||||
	setting.InitWorkPathAndCommonConfig(os.Getenv, setting.ArgWorkPathAndCustomConf{
 | 
						setting.InitWorkPathAndCfgProvider(os.Getenv, setting.ArgWorkPathAndCustomConf{
 | 
				
			||||||
		WorkPath:   c.String("work-path"),
 | 
							WorkPath:   c.String("work-path"),
 | 
				
			||||||
		CustomPath: c.String("custom-path"),
 | 
							CustomPath: c.String("custom-path"),
 | 
				
			||||||
		CustomConf: c.String("config"),
 | 
							CustomConf: c.String("config"),
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -89,6 +89,12 @@ func (s *stringWithDefault) Set(v string) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// InitWorkPathAndCommonConfig will set AppWorkPath, CustomPath and CustomConf, init default config provider by CustomConf and load common settings,
 | 
					// InitWorkPathAndCommonConfig will set AppWorkPath, CustomPath and CustomConf, init default config provider by CustomConf and load common settings,
 | 
				
			||||||
func InitWorkPathAndCommonConfig(getEnvFn func(name string) string, args ArgWorkPathAndCustomConf) {
 | 
					func InitWorkPathAndCommonConfig(getEnvFn func(name string) string, args ArgWorkPathAndCustomConf) {
 | 
				
			||||||
 | 
						InitWorkPathAndCfgProvider(getEnvFn, args)
 | 
				
			||||||
 | 
						LoadCommonSettings()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// InitWorkPathAndCfgProvider will set AppWorkPath, CustomPath and CustomConf, init default config provider by CustomConf
 | 
				
			||||||
 | 
					func InitWorkPathAndCfgProvider(getEnvFn func(name string) string, args ArgWorkPathAndCustomConf) {
 | 
				
			||||||
	tryAbsPath := func(paths ...string) string {
 | 
						tryAbsPath := func(paths ...string) string {
 | 
				
			||||||
		s := paths[len(paths)-1]
 | 
							s := paths[len(paths)-1]
 | 
				
			||||||
		for i := len(paths) - 2; i >= 0; i-- {
 | 
							for i := len(paths) - 2; i >= 0; i-- {
 | 
				
			||||||
@@ -186,6 +192,4 @@ func InitWorkPathAndCommonConfig(getEnvFn func(name string) string, args ArgWork
 | 
				
			|||||||
	AppWorkPath = tmpWorkPath.Value
 | 
						AppWorkPath = tmpWorkPath.Value
 | 
				
			||||||
	CustomPath = tmpCustomPath.Value
 | 
						CustomPath = tmpCustomPath.Value
 | 
				
			||||||
	CustomConf = tmpCustomConf.Value
 | 
						CustomConf = tmpCustomConf.Value
 | 
				
			||||||
 | 
					 | 
				
			||||||
	LoadCommonSettings()
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user