X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/697c662a48c87ee9be136358129c1f79f4f5a72f..80e348724041a694002fc38f57e8868b9b9a2be9:/main.go diff --git a/main.go b/main.go index 9bc69d1..400538a 100644 --- a/main.go +++ b/main.go @@ -1,3 +1,4 @@ +// Command onechat runs the agent daemon and its terminal client. package main import ( @@ -5,7 +6,6 @@ import ( "fmt" "os" "os/signal" - "strings" "syscall" ) @@ -21,32 +21,5 @@ func run() error { ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) defer cancel() - args := os.Args[1:] - switch { - case len(args) == 0: - _, err := fmt.Println("onechat") - if err != nil { - return err - } - case len(args) == 1 && args[0] == "login": - err := login(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) == 1 && args[0] == "chat": - return chat(ctx, os.Stdin, 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", strings.Join(args, " ")) - } - - return ctx.Err() + return parseCommand(ctx, os.Args[1:]) }