diff --git a/lib/configuration.js b/lib/configuration.js index 0e231f386e6587a68e8abf9ff94e83d8ae44bab7..acb6f0a43a90ffe8b1b56362549ccde98f139300 100644 --- a/lib/configuration.js +++ b/lib/configuration.js @@ -47,15 +47,20 @@ postprocess = require('postprocess'), path = require('path'), urlparse = require('urlparse'), secrets = require('./secrets'), -temp = require('temp'); +temp = require('temp'), +semver = require('semver'), +fs = require('fs'); // verify the proper version of node.js is in use try { - var m = /^v0.6.(\d+)$/.exec(process.version); - if (!m) throw process.version + " version not supported"; - if (!(parseInt(m[1], 10) >= 3)) throw "0.6." + m[1] + " not supported" ; + var required = 'unknown'; + // extract required node version from package.json + required = JSON.parse(fs.readFileSync(path.join(__dirname, "..", "package.json"))).engines.node; + if (!semver.satisfies(process.version, required)) throw false; } catch (e) { - process.stderr.write("node 0.6.3 required" + (e ? (" (" + e.toString() + ")") : "") + "\n"); + process.stderr.write("update node! verision " + process.version + + " is not " + required + + (e ? " (" + e + ")" : "") + "\n"); process.exit(1); } @@ -133,7 +138,6 @@ g_configs.test_mysql.database = { }; if (undefined !== process.env['NODE_EXTRA_CONFIG']) { - var fs = require('fs'); eval(fs.readFileSync(process.env['NODE_EXTRA_CONFIG']) + ''); } diff --git a/package.json b/package.json index ae77cc5124e6027fd2cf93ba3995eef53f26a734..71860467163b3cb2726c95630796735f5f3267c1 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ , "uglifycss": "0.0.4" , "node-statsd": "https://github.com/mojodna/node-statsd/tarball/2584c08fad" , "connect-logger-statsd": "0.0.1" + , "semver": "1.0.12" } , "scripts": { "postinstall": "./scripts/generate_ephemeral_keys.sh",