Comparing version 0.0.20 to 0.0.21
@@ -8,2 +8,6 @@ #!/usr/bin/env node | ||
var _dryRunner = require("./dry-runner"); | ||
var _dryRunner2 = _interopRequireDefault(_dryRunner); | ||
var _postpublish = require("./postpublish"); | ||
@@ -21,7 +25,9 @@ | ||
if (cmd === "postpublish") { | ||
(0, _postpublish2.default)(); | ||
_postpublish2.default.run(); | ||
} else if (cmd === "postversion") { | ||
(0, _postversion2.default)(); | ||
_postversion2.default.run(); | ||
} else if (cmd === "dry-run") { | ||
_dryRunner2.default.run(); | ||
} else { | ||
throw new Error("Unknown command: " + cmd); | ||
throw new Error("Unknown command " + cmd); | ||
} | ||
@@ -28,0 +34,0 @@ }; |
@@ -11,2 +11,6 @@ "use strict"; | ||
var _git = require("./git"); | ||
var _git2 = _interopRequireDefault(_git); | ||
var _packageUtils = require("./package-utils"); | ||
@@ -20,11 +24,13 @@ | ||
fixFiles: function fixFiles(json) { | ||
json._publishr.forEach(function (file) { | ||
if (file.created) { | ||
_fileUtils2.default.removeFile(file.path); | ||
} else { | ||
_fileUtils2.default.checkoutFile(file.path); | ||
} | ||
}); | ||
json._publishr = json._publishr || []; | ||
return Promise.all(json._publishr.map(function (file) { | ||
return file.created ? _fileUtils2.default.removeFile(file.path) : _git2.default.checkout(file.path); | ||
})); | ||
}, | ||
overwriteFiles: function overwriteFiles(json) { | ||
json.publishr = json.publishr || {}; | ||
json.publishr.files = json.publishr.files || {}; | ||
json.publishr.dependencies = json.publishr.dependencies || []; | ||
var files = Object.keys(json.publishr.files).map(function (file) { | ||
@@ -31,0 +37,0 @@ return { |
@@ -7,4 +7,2 @@ "use strict"; | ||
var _child_process = require("child_process"); | ||
var _es6Promise = require("es6-promise"); | ||
@@ -16,13 +14,21 @@ | ||
var _logger = require("./logger"); | ||
var _logger2 = _interopRequireDefault(_logger); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var fileUtils = { | ||
checkoutFile: function checkoutFile(filePath) { | ||
readFile: function readFile(filePath) { | ||
return new _es6Promise.Promise(function (resolve, reject) { | ||
(0, _child_process.exec)("git checkout " + filePath, function (err, stdout) { | ||
_fs2.default.readFile(filePath, "utf8", function (err, contents) { | ||
if (err) { | ||
_logger2.default.error("read '" + filePath + "'", err); | ||
return reject(err); | ||
} | ||
return resolve(stdout); | ||
_logger2.default.success("read '" + filePath + "'"); | ||
return resolve(contents); | ||
}); | ||
@@ -33,12 +39,6 @@ }); | ||
return _es6Promise.Promise.all(files.map(function (file) { | ||
return new _es6Promise.Promise(function (resolve, reject) { | ||
_fs2.default.readFile(file.oldPath, "utf8", function (err, contents) { | ||
if (err) { | ||
return reject(err); | ||
} | ||
return fileUtils.readFile(file.oldPath).then(function (contents) { | ||
file.contents = contents; | ||
file.contents = contents; | ||
return resolve(file); | ||
}); | ||
return _es6Promise.Promise.resolve(file); | ||
}); | ||
@@ -48,14 +48,4 @@ })); | ||
readPackage: function readPackage() { | ||
return new _es6Promise.Promise(function (resolve, reject) { | ||
_fs2.default.readFile("package.json", "utf8", function (readErr, contents) { | ||
if (readErr) { | ||
return reject(readErr); | ||
} | ||
try { | ||
return resolve(JSON.parse(contents)); | ||
} catch (parseErr) { | ||
return reject(parseErr); | ||
} | ||
}); | ||
return fileUtils.readFile("package.json").then(function (contents) { | ||
return _es6Promise.Promise.resolve(JSON.parse(contents)); | ||
}); | ||
@@ -67,5 +57,9 @@ }, | ||
if (err) { | ||
_logger2.default.error("remove '" + filePath + "'", err); | ||
return reject(err); | ||
} | ||
_logger2.default.success("remove '" + filePath + "'"); | ||
return resolve(); | ||
@@ -75,52 +69,64 @@ }); | ||
}, | ||
statFiles: function statFiles(files) { | ||
return _es6Promise.Promise.all(files.map(function (file) { | ||
return new _es6Promise.Promise(function (resolve, reject) { | ||
_fs2.default.stat(file.newPath, function (err) { | ||
if (err && err.code !== "ENOENT") { | ||
return reject(err); | ||
} else if (!err) { | ||
file.created = false; | ||
} else { | ||
file.created = true; | ||
} | ||
statFile: function statFile(filePath) { | ||
return new _es6Promise.Promise(function (resolve, reject) { | ||
_fs2.default.stat(filePath, function (err, stats) { | ||
if (err) { | ||
return reject(err); | ||
} | ||
return resolve(file); | ||
}); | ||
return resolve(stats); | ||
}); | ||
})); | ||
}); | ||
}, | ||
writeFiles: function writeFiles(files) { | ||
statFiles: function statFiles(files) { | ||
return _es6Promise.Promise.all(files.map(function (file) { | ||
return new _es6Promise.Promise(function (resolve, reject) { | ||
_fs2.default.writeFile(file.newPath, file.contents, "utf8", function (err) { | ||
if (err) { | ||
return reject(err); | ||
} | ||
return fileUtils.statFile(file.newPath).then(function () { | ||
file.created = false; | ||
file.written = true; | ||
return _es6Promise.Promise.resolve(file); | ||
}).catch(function (err) { | ||
if (err.code !== "ENOENT") { | ||
return _es6Promise.Promise.reject(err); | ||
} | ||
return resolve(file); | ||
}); | ||
file.created = true; | ||
return _es6Promise.Promise.resolve(file); | ||
}); | ||
})); | ||
}, | ||
writePackage: function writePackage(json) { | ||
writeFile: function writeFile(filePath, contents) { | ||
return new _es6Promise.Promise(function (resolve, reject) { | ||
var contents = void 0; | ||
_fs2.default.writeFile(filePath, contents, "utf8", function (err) { | ||
if (err) { | ||
_logger2.default.error("write '" + filePath + "'", err); | ||
try { | ||
contents = JSON.stringify(json, null, 2); | ||
} catch (err) { | ||
return reject(err); | ||
} | ||
_fs2.default.writeFile("package.json", contents, "utf8", function (err) { | ||
if (err) { | ||
return reject(err); | ||
} | ||
_logger2.default.success("write '" + filePath + "'"); | ||
return resolve(); | ||
}); | ||
}); | ||
}, | ||
writeFiles: function writeFiles(files) { | ||
return _es6Promise.Promise.all(files.map(function (file) { | ||
return fileUtils.writeFile(file.newPath, file.contents).then(function () { | ||
file.written = true; | ||
return _es6Promise.Promise.resolve(file); | ||
}); | ||
})); | ||
}, | ||
writePackage: function writePackage(json) { | ||
var contents = void 0; | ||
try { | ||
contents = JSON.stringify(json, null, 2); | ||
} catch (err) { | ||
return _es6Promise.Promise.reject(err); | ||
} | ||
return fileUtils.writeFile("package.json", contents); | ||
} | ||
@@ -127,0 +133,0 @@ }; |
@@ -7,2 +7,6 @@ "use strict"; | ||
var _logger = require("./logger"); | ||
var _logger2 = _interopRequireDefault(_logger); | ||
var _objectAssign = require("object-assign"); | ||
@@ -16,3 +20,3 @@ | ||
updateDependencies: function updateDependencies(json) { | ||
if (!json.publishr) { | ||
if (!json.publishr || !json.publishr.dependencies) { | ||
return json; | ||
@@ -33,2 +37,3 @@ } | ||
json.devDependencies[key] = json.dependencies[key]; | ||
_logger2.default.success("dependency '" + key + "'"); | ||
}); | ||
@@ -35,0 +40,0 @@ |
@@ -17,6 +17,8 @@ "use strict"; | ||
var postpublish = function postpublish() { | ||
return _fileUtils2.default.readPackage().then(_fileHandler2.default.fixFiles); | ||
var postpublish = { | ||
run: function run() { | ||
return _fileUtils2.default.readPackage().then(_fileHandler2.default.fixFiles); | ||
} | ||
}; | ||
exports.default = postpublish; |
@@ -17,6 +17,8 @@ "use strict"; | ||
var postversion = function postversion() { | ||
return _fileUtils2.default.readPackage().then(_fileHandler2.default.overwriteFiles); | ||
var postversion = { | ||
run: function run() { | ||
return _fileUtils2.default.readPackage().then(_fileHandler2.default.overwriteFiles); | ||
} | ||
}; | ||
exports.default = postversion; |
{ | ||
"name": "publishr", | ||
"version": "0.0.20", | ||
"version": "0.0.21", | ||
"description": "A tool for harmonious publishing of git and npm packages.", | ||
@@ -12,2 +12,3 @@ "bin": { | ||
"cover": "rimraf coverage && NODE_PATH=src babel-node node_modules/.bin/babel-istanbul cover node_modules/.bin/_mocha -- --require test/main.js --recursive test", | ||
"dry-run": "node lib/cli.js dry-run", | ||
"lint": "eslint src test", | ||
@@ -27,3 +28,6 @@ "test": "npm run lint && npm run cover && npm run check-coverage", | ||
"dependencies": { | ||
"chalk": "^1.1.3", | ||
"es6-promise": "^3.2.1", | ||
"log-symbols": "^1.0.2", | ||
"mock-fs": "^3.9.0", | ||
"object-assign": "^4.1.0", | ||
@@ -41,4 +45,2 @@ "rimraf": "^2.5.2" | ||
"mocha": "^2.5.3", | ||
"mock-fs": "^3.9.0", | ||
"proxyquire": "^1.7.9", | ||
"sinon": "^1.17.4", | ||
@@ -45,0 +47,0 @@ "sinon-chai": "^2.8.0", |
19036
13
12
435
6
+ Addedchalk@^1.1.3
+ Addedlog-symbols@^1.0.2
+ Addedmock-fs@^3.9.0
+ Addedansi-regex@2.1.1(transitive)
+ Addedansi-styles@2.2.1(transitive)
+ Addedchalk@1.1.3(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedhas-ansi@2.0.0(transitive)
+ Addedlog-symbols@1.0.2(transitive)
+ Addedmock-fs@3.12.1(transitive)
+ Addedrewire@2.5.2(transitive)
+ Addedsemver@5.3.0(transitive)
+ Addedstrip-ansi@3.0.1(transitive)
+ Addedsupports-color@2.0.0(transitive)