github.com/safing/portbase@v0.19.5/runtime/module.go (about) 1 package runtime 2 3 import ( 4 "fmt" 5 6 "github.com/safing/portbase/database" 7 "github.com/safing/portbase/modules" 8 ) 9 10 // DefaultRegistry is the default registry 11 // that is used by the module-level API. 12 var DefaultRegistry = NewRegistry() 13 14 func init() { 15 modules.Register("runtime", nil, startModule, nil, "database") 16 } 17 18 func startModule() error { 19 _, err := database.Register(&database.Database{ 20 Name: "runtime", 21 Description: "Runtime database", 22 StorageType: "injected", 23 ShadowDelete: false, 24 }) 25 if err != nil { 26 return err 27 } 28 29 if err := DefaultRegistry.InjectAsDatabase("runtime"); err != nil { 30 return err 31 } 32 33 if err := startModulesIntegration(); err != nil { 34 return fmt.Errorf("failed to start modules integration: %w", err) 35 } 36 37 return nil 38 } 39 40 // Register is like Registry.Register but uses 41 // the package DefaultRegistry. 42 func Register(key string, provider ValueProvider) (PushFunc, error) { 43 return DefaultRegistry.Register(key, provider) 44 }