59 lines
1.1 KiB
JavaScript
59 lines
1.1 KiB
JavaScript
/*
|
|
* grunt-notify
|
|
* https://github.com/dylang/grunt-notify
|
|
*
|
|
* Copyright (c) 2013 Dylan Greene
|
|
* Licensed under the MIT license.
|
|
*/
|
|
'use strict';
|
|
|
|
var NOTIFY_TYPE = 'notify-send';
|
|
|
|
var path = require('path');
|
|
var spawn = require('../util/spawn');
|
|
var findApp = require('../util/findApp');
|
|
var DEFAULT_IMAGE = path.resolve(__dirname, '../../images/grunt-logo.png');
|
|
var DEFAULT_DURATION = 3000;
|
|
var CMD = 'notify-send';
|
|
|
|
function supported(options) {
|
|
|
|
var app = findApp(CMD);
|
|
|
|
options.debug({
|
|
'notify-send': app || 'notify-send was not found in your path'
|
|
});
|
|
|
|
return !!findApp(CMD);
|
|
}
|
|
|
|
function notify(options, cb) {
|
|
|
|
var args = [
|
|
'--hint=int:transient:1',
|
|
'--icon=' + DEFAULT_IMAGE,
|
|
'--expire-time=' + (options.duration * 1000 || DEFAULT_DURATION),
|
|
options.title,
|
|
options.message
|
|
];
|
|
|
|
options.debug({
|
|
cmd: CMD,
|
|
args: args.join(' ')
|
|
});
|
|
|
|
spawn(CMD, args, function(code) {
|
|
if (code !== 0) {
|
|
cb(code);
|
|
} else {
|
|
cb();
|
|
}
|
|
});
|
|
}
|
|
|
|
module.exports = {
|
|
name: NOTIFY_TYPE,
|
|
notify: notify,
|
|
supported: supported
|
|
};
|