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