npub
Version:
publishing tool for your node projects hosted on github
76 lines (70 loc) • 1.96 kB
JavaScript
// Generated by CoffeeScript 1.9.1
var debug, exec, path, rimraf;
exec = require('child_process').exec;
debug = require("debug")("npm");
rimraf = require('rimraf');
path = require('path');
module.exports = function(dir, log) {
var options;
debug("initialized for: " + dir);
options = {
dir: dir
};
return {
test: function(callback) {
debug("test");
return exec("npm test", options, function(error, stdout, stderr) {
if (stdout != null) {
log(stdout);
}
if (stderr != null) {
log.error(stderr);
}
if (error != null) {
callback(new Error("tests failed with exit code: " + error.code));
return;
}
return callback();
});
},
install: function(registry, callback) {
debug("install");
log('installing node modules...');
return rimraf(path.join(dir, 'node_modules'), function(error) {
if (error != null) {
return callback(error);
}
registry = registry ? " --registry=" + registry : '';
return exec("npm install" + registry, options, function(error, stdout, stderr) {
if (stdout != null) {
log(stdout);
}
if (stderr != null) {
log.error(stderr);
}
if (error != null) {
callback(new Error("failed to install node modules: " + error.code));
return;
}
return callback();
});
});
},
publish: function(callback) {
debug("publish");
return exec("npm publish", options, function(error, stdout, stderr) {
if (stdout != null) {
log(stdout);
}
if (stderr != null) {
log.error(stderr);
}
if (error != null) {
callback(new Error("tests failed with exit code: " + error.code));
return;
}
return callback();
});
}
};
};