Do not follow this link

~bayindirh/nudge

Pushover CLI written with Go.
80900ee8 — Hakan Bayindir 18 days ago
proj: Release v0.8.0
e326e13b — Hakan Bayindir a month ago
feat: -get-notification-state implemented.
7e1d138b — Hakan Bayindir 4 months ago
feat: Add receipt printing and quiet mode support.

clone

read-only
https://git.sr.ht/~bayindirh/nudge
read/write
git@git.sr.ht:~bayindirh/nudge

You can also use your local clone with git send-email.

nudge logo

#nudge - A Pushover CLI

Current state: Beta. Can be used reliably to send messages daily, most things are stable now. Most of the Pushover 4.0 features are supported.

Current version: v0.8.0

nudge provides a small command line tool to send push notifications over Pushover. It aims to provide a simple and composable tool to send push notifications.

#What's New

  • Receipts are automatically printed to stdout when a priority 2 message is sent.
    • Allows suppression of this behavior with -quiet flag.
  • Emergency (P2) messages' status can be checked via -get-notification-state flag.
  • Emergency (P2) messages' retries can be cancelled with -cancel-notification flag.

For older changes, please refer to release notes or changelog for even more detailed history.

#Installing

Just run go install git.sr.ht/~bayindirh/nudge@latest.

#Building

After cloning the repository, going to src/ folder and running go build nudge.go should do.

#Configuration

You need two keys for Nudge to function. An API key and a User key.

Important: The keys should be placed in nudge.conf file. See file contents for guidance.

The configuration file (nudge.conf) is searched in the following places, in the order given below:

  • . (Current directory where user is in)
  • ~/.config/nudge.conf
  • /etc/nudge.conf
  • $CURRENT_WORKING_DIRECTORY/conf (a conf directory where nudge binary is)
  • $CURRENT_WORKING_DIRECTORY (nudge.conf in the same directory with nudge binary)

The first found file takes precedence over the rest, even if they're present. Unless the file location is overriden via flags and no configuration file is found in any of the given locations, nudge throws an error and exits.

You can use src/conf/nudge.conf.example file as a template. File format is TOML.

#Running

Running nudge is simple. Considering your files are in the correct places (see nudge -help for defaults), it's simply:

nudge "Hello, world!"

alternatively, you can integrate nudge to your pipelines (since v0.5.0):

echo "Hello, world!" | nudge

Message titles are set to sender's hostname by default, but can be changed. Message will be sent to all devices registered to that user, with default sound and priority. These can be changed, too.

Current options are as follows:

Usage: nudge [OPTIONS] message
  -attach-image string
    	Attach an image to your notification.
  -cancel-notification string
    	Cancel an emergencey (P2) message.
  -config-path string
    	Define or override configuration file path.
  -devices string
    	List of devices to be notified. Separate multiple devices with ','. (default "all")
  -dryrun
    	Simulate sending a notification.
  -expire int
    	Seconds before giving-up re-sending notifications (for priority 2 only). (default 1800)
  -get-notification-state string
    	Get the delivery state information for an emergency (P2) message.
  -html
    	Enable HTML formatting in notifications.
  -list-recipients
    	Print the list of recipients available on the account and exit.
  -log-level string
    	Change the logging level. (default "warn")
  -priority int
    	Adjust notification priority. Between -2 and 2. (default 0)
  -quiet
    	Suppress normal output of the program, without affecting logging level.
  -retry-interval int
    	Seconds between notification re-sends (for priortity 2 only). (default 30)
  -sound string
    	Set notification sound.
  -title string
    	Notification title. Hostname is used if omitted. (default "orion")
  -ttl int
    	Seconds before the notification removed from devices automatically (ignored if priority is 2).
  -url string
    	An optional URL to attach to the notification.
  -url-title string
    	An optional title for URL to send.
  -verify-recipients
    	Verify recipients with Pushover before sending the notification.
  -version
    	Print version and exit.

#Known Issues

  • Not all features provided by Pushover is implemented (adding tags to notifications, cancel notification by tag).

#Roadmap

  • 0.8.x: No new features planned, general refactoring, polish and improvements.

#Other Details

nudge is written in Go and licensed with GNU/GPLv3 or later. The project uses Semantic Versioning and Conventional Commits.

This project is a part of Very Alpha Technologies ecosystem.

Do not follow this link