summaryrefslogtreecommitdiff
path: root/deps/npm/lib/utils/link.js
diff options
context:
space:
mode:
authorKat Marchán <kzm@sykosomatic.org>2017-12-07 14:05:23 -0800
committerMyles Borins <mylesborins@google.com>2018-01-19 11:32:08 -0500
commitd3b1c971bcf0177b17c649c3aeca1a94cbc3fff5 (patch)
tree321928c015be00cdbe11715297d2d2fc45802263 /deps/npm/lib/utils/link.js
parentbfe41fe88e7421f441067a79fb7512cf5935a2bb (diff)
downloadandroid-node-v8-d3b1c971bcf0177b17c649c3aeca1a94cbc3fff5.tar.gz
android-node-v8-d3b1c971bcf0177b17c649c3aeca1a94cbc3fff5.tar.bz2
android-node-v8-d3b1c971bcf0177b17c649c3aeca1a94cbc3fff5.zip
deps: upgrade npm to 5.6.0
PR-URL: https://github.com/nodejs/node/pull/17777 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Diffstat (limited to 'deps/npm/lib/utils/link.js')
-rw-r--r--deps/npm/lib/utils/link.js71
1 files changed, 3 insertions, 68 deletions
diff --git a/deps/npm/lib/utils/link.js b/deps/npm/lib/utils/link.js
index 15331740a4..c264248144 100644
--- a/deps/npm/lib/utils/link.js
+++ b/deps/npm/lib/utils/link.js
@@ -1,73 +1,8 @@
module.exports = link
-link.ifExists = linkIfExists
-var fs = require('graceful-fs')
-var chain = require('slide').chain
-var mkdir = require('mkdirp')
-var rm = require('./gently-rm.js')
-var path = require('path')
-var npm = require('../npm.js')
-
-function linkIfExists (from, to, gently, cb) {
- fs.stat(from, function (er) {
- if (er) return cb()
- fs.readlink(to, function (er, fromOnDisk) {
- // if the link already exists and matches what we would do,
- // we don't need to do anything
- if (!er) {
- var toDir = path.dirname(to)
- var absoluteFrom = path.resolve(toDir, from)
- var absoluteFromOnDisk = path.resolve(toDir, fromOnDisk)
- if (absoluteFrom === absoluteFromOnDisk) return cb()
- }
- link(from, to, gently, cb)
- })
- })
-}
-
-function resolveIfSymlink (maybeSymlinkPath, cb) {
- fs.lstat(maybeSymlinkPath, function (err, stat) {
- if (err) return cb.apply(this, arguments)
- if (!stat.isSymbolicLink()) return cb(null, maybeSymlinkPath)
- fs.readlink(maybeSymlinkPath, cb)
- })
-}
-
-function ensureFromIsNotSource (from, to, cb) {
- resolveIfSymlink(from, function (err, fromDestination) {
- if (err) return cb.apply(this, arguments)
- if (path.resolve(path.dirname(from), fromDestination) === path.resolve(to)) {
- return cb(new Error('Link target resolves to the same directory as link source: ' + to))
- }
- cb.apply(this, arguments)
- })
-}
+var gentleFS = require('gentle-fs')
+var gentleFSOpts = require('../config/gentle-fs.js')
function link (from, to, gently, abs, cb) {
- if (typeof cb !== 'function') {
- cb = abs
- abs = false
- }
- if (typeof cb !== 'function') {
- cb = gently
- gently = null
- }
- if (npm.config.get('force')) gently = false
-
- to = path.resolve(to)
- var toDir = path.dirname(to)
- var absTarget = path.resolve(toDir, from)
- var relativeTarget = path.relative(toDir, absTarget)
- var target = abs ? absTarget : relativeTarget
-
- chain(
- [
- [ensureFromIsNotSource, absTarget, to],
- [fs, 'stat', absTarget],
- [rm, to, gently, path.dirname(to)],
- [mkdir, path.dirname(to)],
- [fs, 'symlink', target, to, 'junction']
- ],
- cb
- )
+ return gentleFS.link(from, to, gentleFSOpts(gently, undefined, abs), cb)
}