npub
Version:
publishing tool for your node projects hosted on github
98 lines (97 loc) • 3.46 kB
JavaScript
// Generated by CoffeeScript 2.0.0-beta7
void function () {
var Changelog, commitChanges, debug, endIf, fs, Git, log, Npm, openEditor, prep, prompt, updateVersion, verify;
fs = require('fs');
debug = require('debug')('publish');
log = require('../log');
prep = require('../prep');
verify = require('../verify');
Changelog = require('./changelog');
openEditor = require('./editor');
updateVersion = require('./version');
commitChanges = require('./commit-changes');
Npm = require('./npm');
Git = require('../git');
prompt = require('./prompt');
endIf = function (exitCodeOrError, message) {
if (!(null != exitCodeOrError))
return;
if (exitCodeOrError instanceof Error) {
log.error(exitCodeOrError.message);
return process.exit(1);
} else {
if (exitCodeOrError === 0)
return;
if (null != message)
message;
else
message = 'exited with ' + exitCodeOrError;
log.error(message);
return process.exit(exitCodeOrError);
}
};
module.exports = function (dir, version, config) {
var changelog, git, npm;
debug('start');
git = Git(dir);
npm = Npm(dir);
changelog = Changelog(dir, git);
return verify(dir, function (error) {
endIf(error);
prep(dir, config);
debug('ensured license headers');
return verify(dir, function (error) {
endIf(error);
return npm.test(function (error) {
debug('ran: npm test');
endIf(error);
return changelog.build(function (error, tempChangelog) {
var tempChangelogPath;
endIf(error);
tempChangelogPath = changelog.write(tempChangelog);
debug('temp changelog at: ' + tempChangelogPath);
return openEditor(tempChangelogPath, function (error) {
if (null != error) {
fs.unlinkSync(tempChangelogPath);
endIf(error);
}
changelog.update(tempChangelogPath);
debug('updated changelog');
updateVersion(dir, version);
debug('updated version');
return commitChanges(git, version, function () {
var tag;
debug('changes committed');
tag = 'v' + version;
return git.tag(tag, function (error) {
endIf(error);
debug('tagged: ' + tag);
return prompt(version, function (error) {
endIf(error);
return git.branch(function (error, branch) {
endIf(error);
debug('git branch: ' + branch);
return git.push(branch, function (error) {
endIf(error);
debug('git pushed');
return git.pushTag(tag, function (error) {
endIf(error);
debug('git tag "' + tag + '" pushed');
return npm.publish(function (error) {
endIf(error);
debug('published');
return log('success!');
});
});
});
});
});
});
});
});
});
});
});
});
};
}.call(this);