UNPKG

npub

Version:

publishing tool for your node projects hosted on github

98 lines (97 loc) 3.46 kB
// 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);