]> git.giacomolli.uk - onechat/blob - main.go
Separate commands from the entry point
[onechat] / main.go
1 // Command onechat runs the agent daemon and its terminal client.
2 package main
3
4 import (
5 "context"
6 "fmt"
7 "os"
8 "os/signal"
9 "syscall"
10 )
11
12 func main() {
13 err := run()
14 if err != nil {
15 fmt.Fprintln(os.Stderr, "onechat:", err)
16 os.Exit(1)
17 }
18 }
19
20 func run() error {
21 ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
22 defer cancel()
23
24 return parseCommand(ctx, os.Args[1:])
25 }