https://github.com/davglass/cpr
Nodejs cp -R
https://github.com/davglass/cpr
Last synced: 8 months ago
JSON representation
Nodejs cp -R
- Host: GitHub
- URL: https://github.com/davglass/cpr
- Owner: davglass
- License: other
- Created: 2012-10-04T19:39:00.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2021-05-26T19:23:27.000Z (about 5 years ago)
- Last Synced: 2025-08-10T07:25:49.349Z (10 months ago)
- Language: JavaScript
- Size: 110 KB
- Stars: 79
- Watchers: 4
- Forks: 80
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-npm-scripts - cpr - `cp -r` for Node.js. (Cross-platform Utilities)
README
CPR (cp -R)
===========
There are other modules out there that attempt this, but none did it the way I needed it to be done or they had issues and the author failed to fix them in a timely manner.
Install
-------
npm install cpr
Build Status
------------
[](http://travis-ci.org/davglass/cpr)
Usage
-----
```js
var cpr = require('cpr');
//or
var cpr = require('cpr').cpr; //Back compat
cpr('/path/from', '/path/to', {
deleteFirst: true, //Delete "to" before
overwrite: true, //If the file exists, overwrite it
confirm: true //After the copy, stat all the copied files to make sure they are there
}, function(err, files) {
//err - The error if any (err.list might be available with an array of errors for more detailed information)
//files - List of files that we copied
});
cpr('/path/from', '/path/to', function(err, files) {
//err - The error if any (err.list might be available with an array of errors for more detailed information)
// In the case of an error, cpr continues to copy files but returns this error object with all of the files that it failed to copy.
//files - List of files that we copied
});
```
Options
-------
All options default to `false`.
* `deleteFirst`: Delete the to directory with `rimraf`
* `overwrite`: If the destination exists, overwrite it
* `confirm`: After the copy operation, stat all the files and report errors if any are missing
* `filter`: `RegExp` or `function` to test each file against before copying
Filtering
---------
If you give it a `RegExp`, it will use that to `test` the full absolute pathnames of the files and directories as they are being gathered. If any of them passes, it will not be copied.
If you give it a `function`, it will use that with `Array.filter` on the list of full absolute pathnames of files and directories.
CLI
---
`cpr` can also be used from the command line which is useful for cross platform support.
Usage:
```
cpr [options]
```
Copies files from `source` to `destination`.
Options:
* `-d`, `--delete-first`: Delete the destination directory before copying.
* `-f `, `--filter `: Filter out any items that match ``, a case-insensitive regex pattern.
* `-h`, `--help`: Display this usage info.
* `-o`, `--overwrite`: Overwrite the destination exists if it exists.
* `-v`, `--version`: Display the cpr version.
Note that the CLI's `filter` option is simpler than the original NodeJS API, only accepting case-insensitive regular expression patterns and not functions.
