// 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) } }