summaryrefslogtreecommitdiff
path: root/node_modules/spawn-sync/postinstall.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/spawn-sync/postinstall.js')
-rw-r--r--node_modules/spawn-sync/postinstall.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/node_modules/spawn-sync/postinstall.js b/node_modules/spawn-sync/postinstall.js
new file mode 100644
index 0000000..322260e
--- /dev/null
+++ b/node_modules/spawn-sync/postinstall.js
@@ -0,0 +1,42 @@
+'use strict';
+
+function onError(err) {
+ try {
+ var str = '' + (err ? (err.stack || err.message || err) : 'null');
+ require('fs').writeFileSync(__dirname + '/error.log', str);
+ } catch (ex) {
+ }
+}
+try {
+ var fs = require('fs');
+ var cp = require('child_process');
+ var REQUIRES_UPDATE = false;
+ var pkg = JSON.parse(fs.readFileSync(__dirname + '/package.json', 'utf8'));
+ if (cp.spawnSync || __dirname.indexOf('node_modules') === -1) {
+ if(pkg.dependencies['try-thread-sleep']){
+ delete pkg.dependencies['try-thread-sleep'];
+ REQUIRES_UPDATE = true;
+ }
+ } else {
+ if(!pkg.dependencies['try-thread-sleep']){
+ pkg.dependencies['try-thread-sleep'] = "^1.0.0";
+ REQUIRES_UPDATE = true;
+ console.log('Installing native dependencies (this may take up to a minute)');
+ }
+ }
+ if (REQUIRES_UPDATE && __dirname.indexOf('node_modules') !== -1) {
+ fs.writeFileSync(__dirname + '/package.json', JSON.stringify(pkg, null, ' '));
+ cp.exec((process.env.npm_execpath ? ('"' + process.argv[0] + '" "' + process.env.npm_execpath + '"') : 'npm') +
+ ' install --production', {
+ cwd: __dirname
+ }, function (err) {
+ if (err) onError(err);
+ process.exit(0);
+ });
+ setTimeout(function () {
+ process.exit(0);
+ }, 60000);
+ }
+} catch (ex) {
+ onError(ex);
+} \ No newline at end of file