mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-25 17:38:16 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			963 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			963 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2024 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package setting
 | |
| 
 | |
| import (
 | |
| 	"code.gitea.io/gitea/modules/log"
 | |
| 	"code.gitea.io/gitea/modules/nosql"
 | |
| )
 | |
| 
 | |
| // GlobalLock represents configuration of global lock
 | |
| var GlobalLock = struct {
 | |
| 	ServiceType    string
 | |
| 	ServiceConnStr string
 | |
| }{
 | |
| 	ServiceType: "memory",
 | |
| }
 | |
| 
 | |
| func loadGlobalLockFrom(rootCfg ConfigProvider) {
 | |
| 	sec := rootCfg.Section("global_lock")
 | |
| 	GlobalLock.ServiceType = sec.Key("SERVICE_TYPE").MustString("memory")
 | |
| 	switch GlobalLock.ServiceType {
 | |
| 	case "memory":
 | |
| 	case "redis":
 | |
| 		connStr := sec.Key("SERVICE_CONN_STR").String()
 | |
| 		if connStr == "" {
 | |
| 			log.Fatal("SERVICE_CONN_STR is empty for redis")
 | |
| 		}
 | |
| 		u := nosql.ToRedisURI(connStr)
 | |
| 		if u == nil {
 | |
| 			log.Fatal("SERVICE_CONN_STR %s is not a valid redis connection string", connStr)
 | |
| 		}
 | |
| 		GlobalLock.ServiceConnStr = connStr
 | |
| 	default:
 | |
| 		log.Fatal("Unknown sync lock service type: %s", GlobalLock.ServiceType)
 | |
| 	}
 | |
| }
 |