Skip to content

Commit bb5fe4a

Browse files
author
bcoe
committed
fs: add recursive copy method
Introduces recursive copy method, based on fs-extra implementation Refs: nodejs/tooling#98
1 parent d9f270b commit bb5fe4a

File tree

11 files changed

+89
-29
lines changed

11 files changed

+89
-29
lines changed

β€Žlib/internal/fs/copy/copy.jsβ€Ž

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,8 @@ function copyDirItem(items, item, src, dest, opts, cb) {
394394
function onLink(destStat, src, dest, opts, cb) {
395395
readlink(src, (err, resolvedSrc) => {
396396
if (err) return cb(err);
397+
// TODO(bcoe): I don't know how this could be called, because
398+
// getStatsForCopy will have used stat. Ask during review.
397399
if (opts.dereference) {
398400
resolvedSrc = resolve(process.cwd(), resolvedSrc);
399401
}
@@ -428,6 +430,8 @@ function onLink(destStat, src, dest, opts, cb) {
428430
// Do not copy if src is a subdir of dest since unlinking
429431
// dest in this case would result in removing src contents
430432
// and therefore a broken symlink would be created.
433+
// TODO(bcoe): I'm having trouble exercising this code in test,
434+
// ask about during review.
431435
if (destStat.isDirectory() &&
432436
stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
433437
return cb(new ERR_FS_COPY_SYMLINK_TO_SUBDIRECTORY({
@@ -440,7 +444,6 @@ function onLink(destStat, src, dest, opts, cb) {
440444
}
441445
return copyLink(resolvedSrc, dest, cb);
442446
});
443-
444447
});
445448
}
446449

β€Žtest/fixtures/copy/files-and-folders/README.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

β€Žtest/fixtures/copy/files-and-folders/sub-folder/hello.mjsβ€Ž

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Hello
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../README.md
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
b

β€Žtest/fixtures/copy/symlink/a/b/README.mdβ€Ž

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
Β (0)