diff --git a/lib/command.js b/lib/command.js index 5ec4f76..cc61fd9 100644 --- a/lib/command.js +++ b/lib/command.js @@ -8,6 +8,22 @@ var exec = require('child_process').exec; var spawn = require('child_process').spawn; var utils = require('./utils'); +/** + * End event for child_process + * + * node > 0.6 use 'close' + * > 0.7 use 'end' + */ + +var version = process.version.split('.'); + +var cpEndEvent; +if (0 === parseInt(version[0].replace('v',''), 10) && version[1] > 6) { + cpEndEvent = 'close'; +} else { + cpEndEvent = 'exit'; +} + /** * Extend proto */ @@ -190,15 +206,15 @@ module.exports = function (proto) { , onErr , onExit - proc.stdout.addListener('data', onOut = function (data) { + proc.stdout.on('data', onOut = function (data) { stdout += data; }); - proc.stderr.addListener('data', onErr = function (data) { + proc.stderr.on('data', onErr = function (data) { stderr += data; }); - proc.addListener('exit', onExit = function (code, signal) { + proc.on(cpEndEvent, onExit = function (code, signal) { if (code !== 0 || signal !== null) { if (127 == code) stderr += '** Have you installed graphicsmagick? **\n'; err = new Error('Command failed: ' + stderr); diff --git a/package.json b/package.json index 41b66bf..debba1e 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ , "url": "https://github.com/aheckmann/gm.git" } , "devDependencies": { - "should": "0.2.1" - , "gleak": "0.2.2" + "gleak": "0.2.4" } } diff --git a/test/index.js b/test/index.js index 4950d0e..fc82cc1 100644 --- a/test/index.js +++ b/test/index.js @@ -32,24 +32,22 @@ function finish (filename) { if (err) throw new Error(err); --pending; - process.stderr.write( - '\u001B[30m' - + (new Array(total - pending)).join('√') - + '\u001B[0m' - + '\u001B[30m' - + (new Array(pending)).join('░') - + '\u001B[0m' - + '\r' - ); - + process.stdout.write('\033[2K'); + process.stdout.write('\033[0G'); + process.stdout.write('pending ' + pending); if (pending) return; + process.stdout.write('\033[?25h'); + process.stdout.write('\033[2K'); + process.stdout.write('\033[0G'); var leaks = gleak.detect(); assert.equal(0, leaks.length, "global leaks detected: " + leaks); - console.error("\n\u001B[32mAll tests passed\u001B[0m") + console.error("\n\u001B[32mAll tests passed\u001B[0m"); } } +process.stdout.write('\033[?25l'); + files.forEach(function (file) { var filename = __dirname + '/' + file; require(filename)(test(), dir, finish(filename), gm); diff --git a/test/inputIs.js b/test/inputIs.js index d3a1716..37aecf7 100644 --- a/test/inputIs.js +++ b/test/inputIs.js @@ -1,36 +1,36 @@ // gm - Copyright Aaron Heckmann (MIT Licensed) -var should = require('should'); +var assert = require('assert') module.exports = function (_, dir, finish, gm) { var err; try { var gif = gm('/path/to/blah.gif'); - gif.inputIs('gif').should.be.true; - gif.inputIs('jpg').should.be.false; - gif.inputIs('crazy').should.be.false; + assert.equal(true, gif.inputIs('gif')); + assert.equal(false, gif.inputIs('jpg')); + assert.equal(false, gif.inputIs('crazy')); var png = gm('png.png'); - png.inputIs('png').should.be.true; - png.inputIs('gif').should.be.false; - png.inputIs('tif').should.be.false; + assert.equal(true, png.inputIs('png')); + assert.equal(false, png.inputIs('gif')); + assert.equal(false, png.inputIs('tif')); var jpg = gm('super/duper.jpeg'); - jpg.inputIs('jpg').should.be.true; - jpg.inputIs('jpeg').should.be.true; - jpg.inputIs('gif').should.be.false; - jpg.inputIs('tif').should.be.false; - jpg.inputIs('gif').should.be.false; + assert.equal(true, jpg.inputIs('jpg')); + assert.equal(true, jpg.inputIs('jpeg')); + assert.equal(false, jpg.inputIs('gif')); + assert.equal(false, jpg.inputIs('tif')); + assert.equal(false, jpg.inputIs('gif')); var unknown = gm('super.unknown'); - unknown.inputIs('unknown').should.be.true; - unknown.inputIs('.unknown').should.be.true; - unknown.inputIs().should.be.false; - unknown.inputIs('').should.be.false; - unknown.inputIs('png').should.be.false; - unknown.inputIs('pngasdf').should.be.false; + assert.equal(true, unknown.inputIs('unknown')); + assert.equal(true, unknown.inputIs('.unknown')); + assert.equal(false, unknown.inputIs()); + assert.equal(false, unknown.inputIs('')); + assert.equal(false, unknown.inputIs('png')); + assert.equal(false, unknown.inputIs('pngasdf')); } catch (e) { err = e; console.error(e.stack);