|
|
@@ -69,6 +69,7 @@ Examples:
|
|
|
ntfy pub --icon="http://some.tld/icon.png" 'Icon!' # Send notification with custom icon
|
|
|
ntfy pub --attach="http://some.tld/file.zip" files # Send ZIP archive from URL as attachment
|
|
|
ntfy pub --file=flower.jpg flowers 'Nice!' # Send image.jpg as attachment
|
|
|
+ echo 'message' | ntfy publish mytopic # Send message from stdin
|
|
|
ntfy pub -u phil:mypass secret Psst # Publish with username/password
|
|
|
ntfy pub --wait-pid 1234 mytopic # Wait for process 1234 to exit before publishing
|
|
|
ntfy pub --wait-cmd mytopic rsync -av ./ /tmp/a # Run command and publish after it completes
|
|
|
@@ -254,6 +255,15 @@ func parseTopicMessageCommand(c *cli.Context) (topic string, message string, com
|
|
|
if c.String("message") != "" {
|
|
|
message = c.String("message")
|
|
|
}
|
|
|
+ if message == "" && isStdinRedirected() {
|
|
|
+ var data []byte
|
|
|
+ data, err = io.ReadAll(io.LimitReader(c.App.Reader, 1024*1024))
|
|
|
+ if err != nil {
|
|
|
+ log.Debug("Failed to read from stdin: %s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ message = strings.TrimSpace(string(data))
|
|
|
+ }
|
|
|
return
|
|
|
}
|
|
|
|
|
|
@@ -312,3 +322,12 @@ func runAndWaitForCommand(command []string) (message string, err error) {
|
|
|
log.Debug("Command succeeded after %s: %s", runtime, prettyCmd)
|
|
|
return fmt.Sprintf("Command succeeded after %s: %s", runtime, prettyCmd), nil
|
|
|
}
|
|
|
+
|
|
|
+func isStdinRedirected() bool {
|
|
|
+ stat, err := os.Stdin.Stat()
|
|
|
+ if err != nil {
|
|
|
+ log.Debug("Failed to stat stdin: %s", err.Error())
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ return (stat.Mode() & os.ModeCharDevice) == 0
|
|
|
+}
|