69 lines
1.5 KiB
JavaScript
69 lines
1.5 KiB
JavaScript
/*
|
|
* grunt-notify
|
|
* https://github.com/dylang/grunt-notify
|
|
*
|
|
* Copyright (c) 2014 Dylan Greene, 2014 Matej Simek
|
|
* Licensed under the MIT license.
|
|
*/
|
|
'use strict';
|
|
|
|
var NOTIFY_TYPE = 'toaster';
|
|
|
|
var path = require('path');
|
|
var os = require('os');
|
|
var spawn = require('../util/spawn');
|
|
var semver = require('semver');
|
|
|
|
// A wee Win8 console notifications app. Post toast notifications from the console, making it easy to integrate into existing batch scripts etc.
|
|
// Toaster by Nels Oscar https://github.com/nels-o/toaster
|
|
var CMD = path.resolve(__dirname, '../../bin/toaster/toast.exe');
|
|
var IS_WINDOWS = os.type() === 'Windows_NT';
|
|
var DEFAULT_IMAGE = path.resolve(__dirname, '../../images/grunt-logo.png');
|
|
|
|
|
|
function supported(options) {
|
|
var WINDOWS_8;
|
|
try {
|
|
WINDOWS_8 = IS_WINDOWS && semver.satisfies(os.release(), '>=6.2.9200');
|
|
} catch (e) {
|
|
options.debug({semverError: e });
|
|
}
|
|
|
|
options.debug({
|
|
os: os.type(),
|
|
version: os.release(),
|
|
IS_WINDOWS: IS_WINDOWS,
|
|
WINDOWS_8: WINDOWS_8,
|
|
toaster: IS_WINDOWS && WINDOWS_8 ? 'Will use Windows 8 notifications' : 'Not available for your OS.'
|
|
});
|
|
|
|
return IS_WINDOWS && WINDOWS_8;
|
|
}
|
|
|
|
function notify(options, cb) {
|
|
var args = [
|
|
'-p', DEFAULT_IMAGE,
|
|
'-t', options.title,
|
|
'-m', 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
|
|
}; |