package main import ( "context" "fmt" "log" "oc-discovery/conf" "oc-discovery/daemons/node" "os" "os/signal" "strings" "syscall" oclib "cloud.o-forge.io/core/oc-lib" ) const appname = "oc-discovery" func main() { // Init the oc-lib oclib.InitDaemon(appname) // get the right config file o := oclib.GetConfLoader() conf.GetConfig().Name = o.GetStringDefault("NAME", "opencloud-demo") conf.GetConfig().Hostname = o.GetStringDefault("HOSTNAME", "127.0.0.1") conf.GetConfig().PSKPath = o.GetStringDefault("PSK_PATH", "./psk/psk.key") conf.GetConfig().NodeEndpointPort = o.GetInt64Default("NODE_ENDPOINT_PORT", 4001) conf.GetConfig().PublicKeyPath = o.GetStringDefault("PUBLIC_KEY_PATH", "./pem/public.pem") conf.GetConfig().PrivateKeyPath = o.GetStringDefault("PRIVATE_KEY_PATH", "./pem/private.pem") conf.GetConfig().IndexerAddresses = o.GetStringDefault("INDEXER_ADDRESSES", "") conf.GetConfig().PeerIDS = o.GetStringDefault("PEER_IDS", "") conf.GetConfig().NodeMode = o.GetStringDefault("NODE_MODE", "node") ctx, stop := signal.NotifyContext( context.Background(), os.Interrupt, syscall.SIGTERM, ) defer stop() fmt.Println(conf.GetConfig().NodeMode) isNode := strings.Contains(conf.GetConfig().NodeMode, "node") isIndexer := strings.Contains(conf.GetConfig().NodeMode, "indexer") if n, err := node.InitNode(isNode, isIndexer); err != nil { panic(err) } else { <-ctx.Done() // 👈 the only blocking point log.Println("shutting down") n.Close() } }