{
  "name": "ncp",
  "version": "0.4.2",
  "author": {
    "name": "AvianFlu",
    "email": "charlie@charlieistheman.com"
  },
  "description": "Asynchronous recursive file copy utility.",
  "bin": {
    "ncp": "./bin/ncp"
  },
  "devDependencies": {
    "vows": "0.6.x",
    "rimraf": "1.0.x",
    "read-dir-files": "0.0.x"
  },
  "main": "./lib/ncp.js",
  "repository": {
    "type": "git",
    "url": "https://github.com/AvianFlu/ncp.git"
  },
  "keywords": [
    "cli",
    "copy"
  ],
  "license": "MIT",
  "engine": {
    "node": ">=0.4"
  },
  "scripts": {
    "test": "vows --isolate --spec"
  },
  "readme": "# ncp - Asynchronous recursive file & directory copying\n\n[![Build Status](https://secure.travis-ci.org/AvianFlu/ncp.png)](http://travis-ci.org/AvianFlu/ncp)\n\nThink `cp -r`, but pure node, and asynchronous.  `ncp` can be used both as a CLI tool and programmatically.\n\n## Command Line usage\n\nUsage is simple: `ncp [source] [dest] [--limit=concurrency limit]\n[--filter=filter] --stopOnErr`\n\nThe 'filter' is a Regular Expression - matched files will be copied.\n\nThe 'concurrency limit' is an integer that represents how many pending file system requests `ncp` has at a time.\n\n'stopOnErr' is a boolean flag that will tell `ncp` to stop immediately if any\nerrors arise, rather than attempting to continue while logging errors.\n\nIf there are no errors, `ncp` will output `done.` when complete.  If there are errors, the error messages will be logged to `stdout` and to `./ncp-debug.log`, and the copy operation will attempt to continue.\n\n## Programmatic usage\n\nProgrammatic usage of `ncp` is just as simple.  The only argument to the completion callback is a possible error.  \n\n```javascript\nvar ncp = require('ncp').ncp;\n\nncp.limit = 16;\n\nncp(source, destination, function (err) {\n if (err) {\n   return console.error(err);\n }\n console.log('done!');\n});\n```\n\nYou can also call ncp like `ncp(source, destination, options, callback)`. \n`options` should be a dictionary. Currently, such options are available:\n\n  * `options.filter` - a `RegExp` instance, against which each file name is\n  tested to determine whether to copy it or not, or a function taking single\n  parameter: copied file name, returning `true` or `false`, determining\n  whether to copy file or not.\n\n  * `options.transform` - a function: `function (read, write) { read.pipe(write) }`\n  used to apply streaming transforms while copying.\n\n  * `options.clobber` - boolean=true. if set to false, `ncp` will not overwrite \n  destination files that already exist.\n\nPlease open an issue if any bugs arise.  As always, I accept (working) pull requests, and refunds are available at `/dev/null`.\n",
  "readmeFilename": "README.md",
  "bugs": {
    "url": "https://github.com/AvianFlu/ncp/issues"
  },
  "homepage": "https://github.com/AvianFlu/ncp",
  "_id": "ncp@0.4.2",
  "_from": "ncp@>=0.4.0 <0.5.0"
}
