jjmpsp / noti

Monitor a process and trigger a notification.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

noti

CircleCI AppVeyor Codecov

Monitor a process and trigger a notification.

Never sit and wait for some long-running process to finish. Noti can alert you when it's done. You can receive messages on your computer or phone.

macOS Banner Notification

Services

Noti can send notifications on a number of services.

           | macOS | Linux | Windows
--------------------------------------
Banner     |   ✔   |   ✔   |    ✔
Speech     |   ✔   |   ✔   |    ✔
BearyChat  |   ✔   |   ✔   |    ✔
HipChat    |   ✔   |   ✔   |    ✔
Pushbullet |   ✔   |   ✔   |    ✔
Pushover   |   ✔   |   ✔   |    ✔
Pushsafer  |   ✔   |   ✔   |    ✔
Simplepush |   ✔   |   ✔   |    ✔
Slack      |   ✔   |   ✔   |    ✔
Mattermost |   ✔   |   ✔   |    ✔

Checkout the screenshots directory to see what the notifications look like on different platforms.

Installation

The master branch always contains the latest tagged release.

# Install the latest version on macOS.
brew install noti

If you don't want to build from source or install anything extra, just download the latest binary.

# macOS
curl -L $(curl -s https://api.github.com/repos/variadico/noti/releases/latest | awk '/browser_download_url/ { print $2 }' | grep 'darwin-amd64' | sed 's/"//g') | tar -xz

# Linux
curl -L $(curl -s https://api.github.com/repos/variadico/noti/releases/latest | awk '/browser_download_url/ { print $2 }' | grep 'linux-amd64' | sed 's/"//g') | tar -xz

Or download with your browser from the latest release page.

From source

If you want to build from source, then build like this.

make build
# or
make install

This project uses modules with vendoring. The Makefile sets -mod=vendor automatically. Otherwise, you'll need to pass a flag or export a var if you don't use the Makefile.

go build -mod=vendor
# or
export GOFLAGS="-mod=vendor"
go build

Also, go get doesn't really work anymore starting in Go 1.12.

If you have comments about these changes, please the leave the Go team an experience report here.

Examples

Just put noti at the beginning or end of your regular commands. For more details, checkout the docs.

Display a notification when tar finishes compressing files.

noti tar -cjf music.tar.bz2 Music/

Add noti after a command, in case you forgot at the beginning.

clang foo.c -Wall -lm -L/usr/X11R6/lib -lX11 -o bizz; noti

If you already started a command, but forgot to use noti, then you can do this to get notified when that process' PID disappears.

noti --pwatch 1234

You can also press ctrl+z after you started a process. This will temporarily suspend the process, but you can resume it with noti.

$ dd if=/dev/zero of=foo bs=1M count=2000
^Z
zsh: suspended  dd if=/dev/zero of=foo bs=1M count=2000
$ fg; noti
[1]  + continued  dd if=/dev/zero of=foo bs=1M count=2000
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB, 2.0 GiB) copied, 12 s, 175 MB/s

About

Monitor a process and trigger a notification.

License:MIT License


Languages

Language:Go 55.1%Language:Shell 40.8%Language:Objective-C 2.3%Language:Makefile 1.8%