Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

readme.md

npm version Build Status Coverage devDependency Status Dependency Status

cli-error-notifier

Sends native desktop notifications if CLI apps fail

Technically: if a command exits with an exit code other than 0

Install

To use it in your project:

$ npm install --save-dev cli-error-notifier

To use it globally:

$ npm install --global cli-error-notifier

It requires Node.js (v4 or greater).

General usage

$ onerror --help

  Sends native desktop notifications if CLI apps fail

	Usage
	  $ onerror <command> [options]

	Options
	  --title,   -t   Sets the title of the notification.
	                  Default: "An error has occured"
	  --message, -m   Sets the message body of the notification.
	                  Default: "Check the terminal for more information"
	  --icon,    -i   Sets an icon. Can be any absolute path.
	  --sound,   -s   Defines which sound to use.
	                  Use "mute" to disable default sound notification.
	                  Options: Mute, Basso, Blow, Bottle, Frog, Funk, Glass, Hero,
	                           Morse, Ping, Pop, Purr, Sosumi, Submarine, Tink
	                  Default: Bottle
	  --version  -v   Displays the version number.
	  --help     -h   Displays the help.

	Examples
	  $ onerror "wget unknown-host.xyz"
	  $ onerror "wget unknown-host.xyz" -s mute
	  $ onerror "wget unknown-host.xyz" -t Error -m "My error message"
	  $ onerror "wget unknown-host.xyz"  -s Glass -i https://cdn.rawgit.com/npm/logos/31945b5c/npm%20square/n-64.png

Usage with npm scripts

This little CLI comes in handy when writing build scripts.

Let’s imagine you have setup the following npm script for linting your JavaScript files:

{
  "scripts": {
    "eslint": "eslint src",
  }
}

With using cli-error-notifier a desktop notification can be generated at the moment the linting fails:

{
  "scripts": {
    "eslint": "onerror \"eslint src\"",
  }
}

This is especially useful for watching files while developing. You could use it in conjunction with onchange like in the following example:

{
  "scripts": {
    "eslint": "eslint src",
    "eslint:fix": "npm run eslint --silent -- --fix",
    "eslint:watch": "onchange \"src/**/*.js\" -- onerror \"npm run eslint --silent\""
  }
}

It also works flawlessly together with npm-run-all.

Cross platform compatibility

cli-error-notifier uses the brilliant node-notifier and therefore should work with Notification Center for macOS, notify-osd/libnotify-bin for Linux, Toasters for Windows 8/10, or taskbar Balloons for earlier Windows versions. Growl is used if none of these requirements are met.

Related

  • onchange - Watch files and folders and run a command when anything is changed.
  • npm-run-all - CLI tool to run multiple npm-scripts in parallel or serial.

License

MIT © Michael Kühnel