]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/utils/git.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / lib / utils / git.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/utils/git.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/utils/git.js
new file mode 100644 (file)
index 0000000..9c80ea5
--- /dev/null
@@ -0,0 +1,51 @@
+
+// handle some git configuration for windows
+
+exports.spawn = spawnGit
+exports.chainableExec = chainableExec
+exports.whichAndExec = whichAndExec
+
+var exec = require("child_process").execFile
+  , spawn = require("./spawn")
+  , npm = require("../npm.js")
+  , which = require("which")
+  , git = npm.config.get("git")
+  , assert = require("assert")
+  , log = require("npmlog")
+
+function prefixGitArgs () {
+  return process.platform === "win32" ? ["-c", "core.longpaths=true"] : []
+}
+
+function execGit (args, options, cb) {
+  log.info('git', args)
+  var fullArgs = prefixGitArgs().concat(args || [])
+  return exec(git, fullArgs, options, cb)
+}
+
+function spawnGit (args, options) {
+  log.info("git", args)
+  return spawn(git, prefixGitArgs().concat(args || []), options)
+}
+
+function chainableExec () {
+  var args = Array.prototype.slice.call(arguments)
+  return [execGit].concat(args)
+}
+
+function whichGit (cb) {
+  return which(git, cb)
+}
+
+function whichAndExec (args, options, cb) {
+  assert.equal(typeof cb, "function", "no callback provided")
+  // check for git
+  whichGit(function (err) {
+    if (err) {
+      err.code = "ENOGIT"
+      return cb(err)
+    }
+
+    execGit(args, options, cb)
+  })
+}