15 fmt.Fprintln(os.Stderr, "onechat:", err)
21 ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
27 _, err := fmt.Println("onechat")
31 case len(args) == 1 && args[0] == "login":
32 err := login(ctx, os.Stdout)
36 case len(args) == 1 && args[0] == "daemon":
37 err := daemon(ctx, os.Stdout)
41 case len(args) == 1 && args[0] == "chat":
42 err := chat(ctx, os.Stdin, os.Stdout)
46 case len(args) > 0 && args[0] == "probe":
47 err := probe(ctx, args[1:], os.Stdout)
52 return fmt.Errorf("unknown command %q", strings.Join(args, " "))