var Promise = require("nodegit-promise"); var path = require("path"); var fs = require("fs"); var rooted = path.join.bind(path, __dirname, ".."); var pkg = require(rooted("package")); var NODE_VERSION = Number(process.version.match(/^v(\d+\.\d+)/)[1]); module.exports.checkAll = function checkAll() { return Promise.all([ checkVendor("libgit2"), checkVendor("libssh2"), checkVendor("http_parser"), checkExists("lib/nodegit.js"), checkExists("lib/enums.js"), checkExists("src"), checkExists("include") ]).then(function(checks) { return checks.reduce(function(soFar, currentCheck) { return soFar && currentCheck; }, true); }); }; function checkExists(name) { return new Promise(function(resolve, reject) { fs.exists(rooted(name), function(exists) { resolve(exists); }); }); } module.exports.checkExists = checkExists; function checkVendor(name, skipVersion) { var version = ""; if (!skipVersion) { var vendorPackage = pkg[name]; if (NODE_VERSION === 0.1 && vendorPackage["0.10"]) { vendorPackage = vendorPackage["0.10"]; } version = vendorPackage.sha || vendorPackage.version; } var vendorPath = "vendor/" + name + "/" + version; return checkExists(vendorPath); } module.exports.checkVendor = checkVendor; function checkGenerated() { return Promise.all([ checkExists("lib/nodegit.js"), checkExists("lib/enums.js"), checkExists("src"), checkExists("include") ]).then(function(checks) { return checks.reduce(function(soFar, currentCheck) { return soFar && currentCheck; }, true); }); } module.exports.checkGenerated = checkGenerated; // Called on the command line if (require.main === module) { module.exports.checkAll(); }