node 0.7+ compat

master
Aaron Heckmann 12 years ago
parent 379d04349c
commit 231811d0c9
  1. 22
      lib/command.js
  2. 3
      package.json
  3. 20
      test/index.js
  4. 36
      test/inputIs.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);

@ -22,7 +22,6 @@
, "url": "https://github.com/aheckmann/gm.git"
}
, "devDependencies": {
"should": "0.2.1"
, "gleak": "0.2.2"
"gleak": "0.2.4"
}
}

@ -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);

@ -1,36 +1,36 @@
// gm - Copyright Aaron Heckmann <aaron.heckmann+github@gmail.com> (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);

Loading…
Cancel
Save