1package main
2
3import (
4 "context"
5 "log/slog"
6 "os"
7
8 "github.com/urfave/cli/v3"
9 "tangled.org/core/guard"
10 "tangled.org/core/hook"
11 "tangled.org/core/keyfetch"
12 "tangled.org/core/knotserver"
13 tlog "tangled.org/core/log"
14)
15
16func main() {
17 cmd := &cli.Command{
18 Name: "knot",
19 Usage: "knot administration and operation tool",
20 Commands: []*cli.Command{
21 guard.Command(),
22 knotserver.Command(),
23 keyfetch.Command(),
24 hook.Command(),
25 },
26 }
27
28 logger := tlog.New("knot")
29 slog.SetDefault(logger)
30
31 ctx := context.Background()
32 ctx = tlog.IntoContext(ctx, logger)
33
34 if err := cmd.Run(ctx, os.Args); err != nil {
35 logger.Error(err.Error())
36 os.Exit(-1)
37 }
38}