A vibe coded tangled fork which supports pijul.
at 1f550ebb01a3cca3ebefed032292cfb817029711 51 lines 1.1 kB view raw
1package main 2 3import ( 4 "context" 5 "log/slog" 6 "os" 7 "os/signal" 8 "syscall" 9 10 "github.com/carlmjohnson/versioninfo" 11 "github.com/urfave/cli/v3" 12 "tangled.org/core/knotmirror" 13 "tangled.org/core/log" 14) 15 16func main() { 17 if err := run(os.Args); err != nil { 18 slog.Error("error running knotmirror", "err", err) 19 os.Exit(-1) 20 } 21} 22 23func run(args []string) error { 24 ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) 25 defer cancel() 26 27 logger := log.New("knotmirror") 28 slog.SetDefault(logger) 29 ctx = log.IntoContext(ctx, logger) 30 31 app := cli.Command{ 32 Name: "knotmirror", 33 Usage: "knot mirroring service", 34 Version: versioninfo.Short(), 35 } 36 app.Flags = []cli.Flag{} 37 app.Commands = []*cli.Command{ 38 { 39 Name: "serve", 40 Usage: "run the knotmirror daemon", 41 Action: runKnotMirror, 42 Flags: []cli.Flag{}, 43 }, 44 } 45 return app.Run(ctx, args) 46} 47 48func runKnotMirror(ctx context.Context, cmd *cli.Command) error { 49 // TODO: generate Config from arguments & pass down to Run() 50 return knotmirror.Run(ctx) 51}