1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47package lfsproxy
import (
"context"
"github.com/GareArc/git-lfs-proxy/config"
"github.com/gorilla/mux"
"github.com/rs/zerolog/log"
)
type ProxyManager struct {
proxyHandlers map[string]ProxyHandler
ctx context.Context
}
func NewProxyManager(ctx context.Context) *ProxyManager {
ret := &ProxyManager{
proxyHandlers: make(map[string]ProxyHandler),
ctx: ctx,
}
return ret
}
func (pm *ProxyManager) RegisterProxyHandler(name string, handler ProxyHandler) {
pm.proxyHandlers[name] = handler
}
func (pm *ProxyManager) InitAllProxies(r *mux.Router) {
if config.Global.GoogleDriveProxyConfig.Enabled {
pm.RegisterProxyHandler("google", GetProxyHandler("google"))
pm.proxyHandlers["google"].Init(pm.ctx, r)
}
// notify all proxies started
for _, handler := range pm.proxyHandlers {
handler.NotifyInitialized()
}
// handle when no proxy is enabled
if len(pm.proxyHandlers) == 0 {
log.Warn().Msg("No proxy is enabled")
}
}