npub
Version:
publishing tool for your node projects hosted on github
57 lines (56 loc) • 1.99 kB
JavaScript
// Generated by CoffeeScript 2.0.0-beta7
void function () {
var debug, exec;
exec = require('child_process').exec;
debug = require('debug')('git');
module.exports = function (dir) {
var options;
debug('initialized for: ' + dir);
options = { cwd: dir };
return {
dir: dir,
isClean: function (callback) {
debug('isClean');
return exec('git diff --exit-code', options, function (error, stdout, stderror) {
return callback(!error);
});
},
commit: function (message, callback) {
debug('commit - ' + message);
return exec("git add CHANGELOG.md package.json && git commit -m '" + message + "'", options, function (error, stdout, stderror) {
return callback(!error);
});
},
diffSinceLastTag: function (callback) {
debug('diffSinceLastTag');
return exec('git log --oneline $(git describe --tags --abbrev=0)..HEAD', options, function (error, stdout, stderr) {
return callback(error, stdout);
});
},
tag: function (tag, callback) {
debug('tag - ' + tag);
return exec('git tag -a ' + tag + ' -m ' + tag, options, function (error, stdout, stderror) {
return callback(error);
});
},
branch: function (callback) {
debug('branch');
return exec('git rev-parse --abbrev-ref HEAD', options, function (error, stdout, stderr) {
return callback(error, stdout);
});
},
push: function (branch, callback) {
debug('push - ' + branch);
return exec('git push origin ' + branch, options, function (error, stdout, stderror) {
return callback(error);
});
},
pushTag: function (tag, callback) {
debug('pushTag - ' + tag);
return exec('git push origin tag ' + tag, options, function (error, stdout, stderror) {
return callback(error);
});
}
};
};
}.call(this);