mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-02 20:06:06 +01: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)
 | 
						|
	}
 | 
						|
}
 |