Skip to content

Instantly share code, notes, and snippets.

@tomzx
Forked from sklink/gkm.js
Created July 24, 2016 03:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tomzx/66496efd4145319706ee63851e832375 to your computer and use it in GitHub Desktop.
Save tomzx/66496efd4145319706ee63851e832375 to your computer and use it in GitHub Desktop.
'use strict';
// TODO: Verify if we're getting loaded from multiples location and prevent creating new child processes?
var EventEmitter2 = require('eventemitter2').EventEmitter2;
var path = require('path');
var spawn = require('child_process').spawn;
var events = new EventEmitter2({wildcard: true});
var javaPath = '';
var gkm;
function start() {
gkm = spawn(javaPath + 'java', ['-jar', path.join(__dirname, 'lib/gkm.jar')]);
gkm.stdout.on('data', function(data) {
data = data.toString().split(/\r\n|\r|\n/).filter(function(item) { return item; });
for (var i in data) {
var parts = data[i].split(':');
events.emit(parts[0], parts.slice(1));
}
});
}
function stop() {
gkm.kill('SIGINT');
}
function setJavaPath(path) {
if (typeof path === 'string') {
javaPath = path;
} else {
console.error("path must be a string");
}
}
start();
module.exports = {
events: events,
stop: stop,
start: start
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment