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
package repos
import (
"context"
"errors"
"log/slog"
commonv1 "github.com/johnandersen777/socialweb-computer-kcp/api/common/v1alpha1"
"github.com/johnandersen777/socialweb-computer-kcp/internal/bus"
"github.com/johnandersen777/socialweb-computer-kcp/internal/contract/atprotorepo"
"github.com/johnandersen777/socialweb-computer-kcp/internal/controllers/atprotorecord"
atprotorepoctl "github.com/johnandersen777/socialweb-computer-kcp/internal/controllers/atprotorepo"
"github.com/johnandersen777/socialweb-computer-kcp/internal/controllers/localrepo"
pdsctl "github.com/johnandersen777/socialweb-computer-kcp/internal/controllers/pds"
"github.com/johnandersen777/socialweb-computer-kcp/internal/controllers/remotepds"
"github.com/johnandersen777/socialweb-computer-kcp/internal/controllers/remoterepo"
ctlruntime "github.com/johnandersen777/socialweb-computer-kcp/internal/controllers/runtime"
)
type Options struct {
Bus *bus.Bus
Log *slog.Logger
Dynamic atprotorecord.DynamicFactory
Network atprotorepo.RecordReader
Pds pdsctl.Lookup
AwaitPds pdsctl.Await
Secrets func(ctx context.Context, workspace string, ref commonv1.SecretRef) (map[string]any, error)
Scope func(workspace string) bool
}
func Register(m *ctlruntime.Manager, opts Options) error {
pdsctl.Provide(pdsctl.Options{Bus: opts.Bus, Servers: opts.AwaitPds, Secrets: opts.Secrets})
_, pdsErr := remotepds.Register(m, remotepds.Options{Log: opts.Log, Bus: opts.Bus})
_, repoErr := atprotorepoctl.Register(m, atprotorepoctl.Options{Bus: opts.Bus, Log: opts.Log})
_, localErr := localrepo.Register(m, localrepo.Options{Bus: opts.Bus, Network: opts.Network, Pds: opts.Pds, Scope: opts.Scope, Log: opts.Log})
_, remoteErr := remoterepo.Register(m, remoterepo.Options{Bus: opts.Bus, Network: opts.Network, Log: opts.Log})
_, recordErr := atprotorecord.Register(m, atprotorecord.Options{Bus: opts.Bus, Dynamic: opts.Dynamic, Scope: opts.Scope, Log: opts.Log})
return errors.Join(pdsErr, repoErr, localErr, remoteErr, recordErr)
}