package main import ( "context" "fmt" "os" "os/signal" "syscall" "tangled.org/core/cilogs" "tangled.org/core/idresolver" "tangled.org/core/log" ) func envOr(key, fallback string) string { if v := os.Getenv(key); v != "" { return v } return fallback } func main() { ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) defer stop() logger := log.New("cilogs") cfg := cilogs.Config{ ListenAddr: envOr("CILOGS_LISTEN_ADDR", "0.0.0.0:3333"), HostKeyPath: os.Getenv("CILOGS_HOST_KEY_PATH"), } dev := os.Getenv("CILOGS_DEV") == "true" dir := idresolver.DefaultResolver(envOr("CILOGS_PLC_URL", "https://plc.directory")).Directory() if err := cilogs.New(cfg, cilogs.NewSpindles(dir, dev), logger).ListenAndServe(ctx); err != nil { fmt.Fprintf(os.Stderr, "cilogs failed: %v\n", err) os.Exit(1) } }