]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/node-gyp/lib/find-node-directory.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / node-gyp / lib / find-node-directory.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/node-gyp/lib/find-node-directory.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/node-gyp/lib/find-node-directory.js
new file mode 100644 (file)
index 0000000..3aee8a1
--- /dev/null
@@ -0,0 +1,61 @@
+var path = require('path')
+  , log = require('npmlog')
+
+function findNodeDirectory(scriptLocation, processObj) {
+  // set dirname and process if not passed in
+  // this facilitates regression tests
+  if (scriptLocation === undefined) {
+    scriptLocation = __dirname
+  }
+  if (processObj === undefined) {
+    processObj = process
+  }
+
+  // Have a look to see what is above us, to try and work out where we are
+  npm_parent_directory = path.join(scriptLocation, '../../../..')
+  log.verbose('node-gyp root', 'npm_parent_directory is '
+              + path.basename(npm_parent_directory))
+  node_root_dir = ""
+
+  log.verbose('node-gyp root', 'Finding node root directory')
+  if (path.basename(npm_parent_directory) === 'deps') {
+    // We are in a build directory where this script lives in
+    // deps/npm/node_modules/node-gyp/lib
+    node_root_dir = path.join(npm_parent_directory, '..')
+    log.verbose('node-gyp root', 'in build directory, root = '
+                + node_root_dir)
+  } else if (path.basename(npm_parent_directory) === 'node_modules') {
+    // We are in a node install directory where this script lives in
+    // lib/node_modules/npm/node_modules/node-gyp/lib or
+    // node_modules/npm/node_modules/node-gyp/lib depending on the
+    // platform
+    if (processObj.platform === 'win32') {
+      node_root_dir = path.join(npm_parent_directory, '..')
+    } else {
+      node_root_dir = path.join(npm_parent_directory, '../..')
+    }
+    log.verbose('node-gyp root', 'in install directory, root = '
+                + node_root_dir)
+  } else {
+    // We don't know where we are, try working it out from the location
+    // of the node binary
+    var node_dir = path.dirname(processObj.execPath)
+    var directory_up = path.basename(node_dir)
+    if (directory_up === 'bin') {
+      node_root_dir = path.join(node_dir, '..')
+    } else if (directory_up === 'Release' || directory_up === 'Debug') {
+      // If we are a recently built node, and the directory structure
+      // is that of a repository. If we are on Windows then we only need
+      // to go one level up, everything else, two
+      if (processObj.platform === 'win32') {
+        node_root_dir = path.join(node_dir, '..')
+      } else {
+        node_root_dir = path.join(node_dir, '../..')
+      }
+    }
+    // Else return the default blank, "".
+  }
+  return node_root_dir
+}
+
+module.exports = findNodeDirectory