]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/config/load-prefix.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / lib / config / load-prefix.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/config/load-prefix.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/config/load-prefix.js
new file mode 100644 (file)
index 0000000..39d076f
--- /dev/null
@@ -0,0 +1,49 @@
+module.exports = loadPrefix
+
+var findPrefix = require("./find-prefix.js")
+var path = require("path")
+
+function loadPrefix (cb) {
+  var cli = this.list[0]
+
+  Object.defineProperty(this, "prefix",
+    { set : function (prefix) {
+        var g = this.get("global")
+        this[g ? "globalPrefix" : "localPrefix"] = prefix
+      }.bind(this)
+    , get : function () {
+        var g = this.get("global")
+        return g ? this.globalPrefix : this.localPrefix
+      }.bind(this)
+    , enumerable : true
+    })
+
+  Object.defineProperty(this, "globalPrefix",
+    { set : function (prefix) {
+        this.set("prefix", prefix)
+      }.bind(this)
+    , get : function () {
+        return path.resolve(this.get("prefix"))
+      }.bind(this)
+    , enumerable : true
+    })
+
+  var p
+  Object.defineProperty(this, "localPrefix",
+    { set : function (prefix) { p = prefix },
+      get : function () { return p }
+    , enumerable: true })
+
+  // try to guess at a good node_modules location.
+  // If we are *explicitly* given a prefix on the cli, then
+  // always use that.  otherwise, infer local prefix from cwd.
+  if (Object.prototype.hasOwnProperty.call(cli, "prefix")) {
+    p = path.resolve(cli.prefix)
+    process.nextTick(cb)
+  } else {
+    findPrefix(process.cwd(), function (er, found) {
+      p = found
+      cb(er)
+    })
+  }
+}