Code Monkey home page Code Monkey logo

node-copy-dereference's Introduction

node-copy-dereference

Copy a file or directory, dereferencing symlinks in the process, and preserving last-modified times and file modes.

Made for use by Broccoli and Broccoli plugins.

Installation

npm install --save copy-dereference

Example

var copyDereferenceSync = require('copy-dereference').sync;

copyDereferenceSync('src_dir/some_file.txt', 'dest_dir/some_file.txt');
copyDereferenceSync('src_dir/some_dir', 'dest_dir/some_dir');

Description

copyDereferenceSync(srcPath, destPath)

Copy the file or directory at srcPath to destPath.

If srcPath is a symlink, or if there is a symlink somewhere underneath the directory at srcPath, it will be dereferenced, that is, it will be replaced with the thing it points to.

File & directory last-modified times as well as file modes (permissions & executable bit) will be preserved.

We throw an exception if there are any broken symlinks at or beneath srcPath, if srcPath does not exist, of if destPath's parent directory does not exist.

Furthermore, we throw an exception if destPath already exists. Thus in contrast to Unix cp, the following will fail:

// dest_dir already exists, and we might expect dest_dir/some_dir to be
// created. This does not work; pass 'dest_dir/some_dir' instead.
copyDereferenceSync('src_dir/some_dir', 'dest_dir');

File types other than files, directories and symlinks (such as device files or sockets) are not supported and will cause an exception.

Notes

  • There intentionally isn't an asynchronous version. It's not clear that we need or want one. Before sending a patch to add an async version, please share your use case on the issue tracker.

node-copy-dereference's People

Contributors

joliss avatar

Watchers

Tim Finley avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.