Monorepo for Tangled
tangled.org
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 "tangled.org/core/knotserver/sandbox/sandboxexec"
14 tlog "tangled.org/core/log"
15)
16
17func main() {
18 cmd := &cli.Command{
19 Name: "knot",
20 Usage: "knot administration and operation tool",
21 Commands: []*cli.Command{
22 guard.Command(),
23 knotserver.Command(),
24 keyfetch.Command(),
25 hook.Command(),
26 knotserver.MigrateIsolationCommand(),
27 sandboxexec.Command(),
28 },
29 }
30
31 logger := tlog.New("knot")
32 slog.SetDefault(logger)
33
34 ctx := context.Background()
35 ctx = tlog.IntoContext(ctx, logger)
36
37 if err := cmd.Run(ctx, os.Args); err != nil {
38 logger.Error(err.Error())
39 os.Exit(-1)
40 }
41}