From d2dfb744093552e4266b36d987897aaff3e24395 Mon Sep 17 00:00:00 2001 From: Jonathan Lam Date: Fri, 24 Jul 2026 08:24:04 +1000 Subject: [PATCH] fix: honor '-' as a stdin sentinel for the positional message-text argument resolveMessageText only treated '-' as "read from stdin" when passed via --file, so `message send - < textArg && args[textArg] == "-": + return readAllStdin() case len(args) > textArg: return args[textArg], nil case stdinIsPiped(): diff --git a/cmd/message_test.go b/cmd/message_test.go new file mode 100644 index 0000000..07b71b4 --- /dev/null +++ b/cmd/message_test.go @@ -0,0 +1,30 @@ +package cmd + +import ( + "os" + "strings" + "testing" +) + +func TestResolveMessageTextDashStdin(t *testing.T) { + r, w, err := os.Pipe() + if err != nil { + t.Fatal(err) + } + orig := os.Stdin + os.Stdin = r + defer func() { os.Stdin = orig }() + + go func() { + w.WriteString("hello from stdin\n") + w.Close() + }() + + got, err := resolveMessageText(messageSendCmd, []string{"D0AHB4FLY75", "-"}, 1) + if err != nil { + t.Fatal(err) + } + if strings.TrimSpace(got) != "hello from stdin" { + t.Fatalf("got %q, want stdin content", got) + } +}