Some checks failed
cache-seeder / prune (push) Has been skipped
cache-seeder / frontend (push) Failing after 3s
cache-seeder / python (push) Failing after 3s
cache-seeder / gobuild (push) Failing after 4s
cache-seeder / lint (bindata, lint-backend) (push) Failing after 3s
giteabot backport / giteabot (push) Has been skipped
giteabot / giteabot (push) Has been skipped
cache-prune / prune (push) Has been skipped
release-nightly-snapcraft / build-and-publish (ubuntu-24.04) (push) Has been cancelled
release-nightly-snapcraft / build-and-publish (ubuntu-24.04-arm) (push) Has been cancelled
release-nightly / nightly-binary (push) Has been cancelled
release-nightly / nightly-container (push) Has been cancelled
cron-renovate / cron-renovate (push) Has been skipped
50 lines
934 B
Go
50 lines
934 B
Go
// Copyright 2023 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package config
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
)
|
|
|
|
var getterMu sync.RWMutex
|
|
|
|
type CfgSecKeyGetter interface {
|
|
GetValue(sec, key string) (v string, has bool)
|
|
}
|
|
|
|
var cfgSecKeyGetterInternal CfgSecKeyGetter
|
|
|
|
func SetCfgSecKeyGetter(p CfgSecKeyGetter) {
|
|
getterMu.Lock()
|
|
cfgSecKeyGetterInternal = p
|
|
getterMu.Unlock()
|
|
}
|
|
|
|
func GetCfgSecKeyGetter() CfgSecKeyGetter {
|
|
getterMu.RLock()
|
|
defer getterMu.RUnlock()
|
|
return cfgSecKeyGetterInternal
|
|
}
|
|
|
|
type DynKeyGetter interface {
|
|
GetValue(ctx context.Context, key string) (v string, has bool)
|
|
GetRevision(ctx context.Context) int
|
|
InvalidateCache()
|
|
}
|
|
|
|
var dynKeyGetterInternal DynKeyGetter
|
|
|
|
func SetDynGetter(p DynKeyGetter) {
|
|
getterMu.Lock()
|
|
dynKeyGetterInternal = p
|
|
getterMu.Unlock()
|
|
}
|
|
|
|
func GetDynGetter() DynKeyGetter {
|
|
getterMu.RLock()
|
|
defer getterMu.RUnlock()
|
|
return dynKeyGetterInternal
|
|
}
|