Skip to content

huntresslabs/terminal-notifier-guard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TerminalNotifier - Guard Style

A simple Ruby wrapper around the terminal-notifier command-line tool, which allows you to send User Notifications to the Notification Center on Mac OS X 10.8, or higher.

This version has 4 different icons and sounds included for each status that Guard supports:

  1. Failed (Sound is Sosumi)
  2. Notify (Sound is Blow)
  3. Pending (Sound is Morse)
  4. Success (Sound is Hero)

Fork's note

This is a fork of the gem CarlosCD/terminal-notifier-guard , forked from UseK/terminal-notifier-guard, with some small changes.

The original gem (by UseK) included an icon file copyrighted by Apple in its history (it was removed in the last commits). That file is not present in this version. The License was updated to reflect this, the rest of the license is the same (MIT).

Installation

This version depends on the official terminal-notifier. Install it with Homebrew or see the official Installation instructions.

$ brew install terminal-notifier

Then, install the gem

$ gem install terminal-notifier-guard

Or add it to your Gemfile:

gem 'terminal-notifier-guard', '~> 1.6.1'

Usage

Add the notifier to your Guardfile:

# Guardfile
notification :terminal_notifier if `uname` =~ /Darwin/

Note: The uname check is necessary if you have contributors to your project who are not on OSX.

You can pass in options if you like, e.g. for the app name (used in the title) and what app to activate when you click the notification (defaults to Terminal.app):

# Guardfile
notification :terminal_notifier, app_name: "MyApp ::", activate: 'com.googlecode.iTerm2' if `uname` =~ /Darwin/

To only enable sounds only in the case opf failure, use:

# Guardfile
notification :terminal_notifier, silent_unless_failure: true if `uname` =~ /Darwin/

Configure Binary Path

You can override the binary path detection with an environment variable. This solves a problem where the default binary found by which is the Ruby gem version of terminal-notifier. This version is slow, especially in a Bundler environment.

In this scenario we would much rather use the version installed by Homebrew at /usr/local/bin/terminal-notifier which is noticeably faster.

This gem allows you to set an environment variable to explicitly specify the binary to use, like this:

export TERMINAL_NOTIFIER_BIN=/usr/local/bin/terminal-notifier

When using guard to monitor test results in TDD, speed is of the essence. Using the right binary can save a half second or more during each test run, which doesn't seem like much but makes a big difference in productivity.

OSX 10.8 users

As of version 1.6.1, we no longer bundle notifier binaries in this gem. Please revert to version 1.5.3 for OSX 10.8 support.

Stand-alone Usage

You could also use the notifier directly.

Examples are:

TerminalNotifier::Guard.notify('Hello World')
TerminalNotifier::Guard.notify('Hello World', :title => 'Ruby', :subtitle => 'Programming Language')
TerminalNotifier::Guard.notify('Hello World', :activate => 'com.apple.Safari')
TerminalNotifier::Guard.notify('Hello World', :open => 'http://twitter.com/alloy')
TerminalNotifier::Guard.notify('Hello World', :execute => 'say "OMG"')
TerminalNotifier::Guard.notify('Hello World', :group => Process.pid)

TerminalNotifier::Guard.remove(Process.pid)

TerminalNotifier::Guard.list(Process.pid)
TerminalNotifier::Guard.list

TerminalNotifier::Guard.failed('This did not go well.')
TerminalNotifier::Guard.success('This did not go bad.')
TerminalNotifier::Guard.pending('This needs some work still')

Caveats

It has been reported that Terminal Notifier fails when run from Tmux without reattach-to-user-namespace installed. See this comment for details.

License

All the works are available under the MIT license.

See LICENSE for details.

Contributors & Thanks to

  • @alloy (For the terminal-notifier)
  • @railsme (For a clean way to test for OSX version #15)
  • @jamilbx (For support for local terminal-notifier command #8)
  • @mattbrictson (For adding support for the TERMINAL_NOTIFIER_BIN env var)
  • @goronfreeman (For the lovely icon set!)
  • @bbonamin (For fixing the license issue)
  • @croeck (For fixing the binary detection)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages