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)
}
}