Monorepo for Tangled forked from tangled.org/core
Something went wrong. Try again.
Go
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566package server
import ( "context" "fmt" "net/http"
"github.com/urfave/cli/v3" "tangled.org/core/knot2/config" "tangled.org/core/knot2/db" "tangled.org/core/log")
func Command() *cli.Command { return &cli.Command{ Name: "server", Usage: "run a knot server", Action: Run, Flags: []cli.Flag{ &cli.StringFlag{ Name: "config", Aliases: []string{"c"}, Usage: "config path", Required: true, }, }, }}
func Run(ctx context.Context, cmd *cli.Command) error { l := log.FromContext(ctx) l = log.SubLogger(l, cmd.Name) ctx = log.IntoContext(ctx, l)
configPath := cmd.String("config")
cfg, err := config.Load(ctx, configPath) if err != nil { return fmt.Errorf("failed to load config: %w", err) } fmt.Println("config:", cfg)
// TODO: start listening to jetstream
d, err := db.New(cfg.DbPath()) if err != nil { panic(err) } err = db.Init(d) if err != nil { panic(err) }
clientApp := newAtClientApp(&cfg)
mux := Routes(&cfg, d, clientApp)
l.Info("starting knot server", "address", cfg.ListenAddr()) err = http.ListenAndServe(cfg.ListenAddr(), mux) if err != nil { l.Error("server error", "err", err) }
return nil}