- args := os.Args[1:]
- switch {
- case len(args) == 1 && (args[0] == "help" || args[0] == "--help" || args[0] == "-h"):
- _, err := fmt.Print(usage)
- if err != nil {
- return fmt.Errorf("write command help: %w", err)
- }
- case len(args) == 1 && args[0] == "login":
- err := chatgptLogin(ctx, os.Stdout)
- if err != nil {
- return err
- }
-
- // A signal is the normal stop of the daemon and the client, so their
- // result does not include ctx.Err().
- case len(args) == 1 && args[0] == "daemon":
- return daemon(ctx, os.Stdout)
- case len(args) == 0 || len(args) == 1 && args[0] == "chat":
- return terminal(ctx, os.Stdin, os.Stdout)
- case len(args) > 0 && args[0] == "import":
- return whatsappImport(ctx, args[1:], os.Stdout)
- case len(args) > 0 && args[0] == "probe":
- err := probe(ctx, args[1:], os.Stdout)
- if err != nil {
- return err
- }
- default:
- return fmt.Errorf("unknown command %q\n\n%s", strings.Join(args, " "), strings.TrimSuffix(usage, "\n"))
- }
-
- return ctx.Err()