Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

recursive-copy-cli

libinvarghese18.7kISC1.0.20
cli, copy, recursive-copy, rename-files, transforming-files

readme

recursive-copy-cli

License: ISC Dependabot semantic-release npm node-lts

master: GitHub Workflow Status GitHub Workflow Status Codecov

develop: GitHub Workflow Status GitHub Workflow Status Codecov

CLI for recursive-copy

Installing the command line tool

Installation is as simple as running the following command

npm install -g recursive-copy-cli

Using the command line tool

recursive-copy <src> <dest>

Positionals:
  src   Source file/folder path                                                                                  [string]
  dest  Destination file/folder path                                                                             [string]

Options:
  --help                  Show help                                                                             [boolean]
  --version               Show version number                                                                   [boolean]
  --overwrite, -w         Whether to overwrite destination files [Default: false]                               [boolean]
  --expand, -e            Whether to expand symbolic links [Default: false]                                     [boolean]
  --dot, -d               Whether to copy files beginning with a .(dot) [Default: false]                        [boolean]
  --junk, -j              Whether to copy OS junk files (e.g. .DS_Store, Thumbs.db) [Default: false]            [boolean]
  --filter, -f            Filter regular expression / glob that determines which files to copy (uses maximatch)   [array]
  --transform-module, -t  Function that returns a transform stream used to modify file contents                   [array]
  --concurrency, -c       Maximum number of simultaneous copy operations [Default: 255]                          [number]
  --debug, -v             Whether to log debug information [Default: false]                                     [boolean]
  --renameModule, -r     renames source paths using the module                                                   [array]
  --renamePattern, -p    renames patterns in source paths. eg: :: -                                              [array]

Examples:
  recursive-copy srcPath destPath -r pascalcase                       Renames files using the pascalcase module
  recursive-copy srcPath destPath -p '::' '-'                         Renames someFile::name.ext to someFile-name.ext
  recursive-copy srcPath destPath -p '/(.*)-(.*)\.(.*)/g' '$2-$1.$3'  Renames author-title.ext to title-author.ext
  recursive-copy srcPath destPath -f '*.json' '/\*.js$/'              Only Copies json & js files
  recursive-copy srcPath destPath -f "*.js" -t some-transform-module  modify the contents of js files

Use --no-<option> to toggle boolean options. eg: --no-overwrite or --no-w

When specifying a module, you could specify a global module, local module or provide the path to file.
eg: ./someFolder/pascalcase/index.js in case of file or node_modules/pascalcase in case of local module

For more help refer https://github.com/libinvarghese/recursive-copy-cli

Example

$ recursive-copy source dest
source -> dest
source/a -> dest/a
source/b -> dest/b
source/c -> dest/c
4 item(s) copied

FAQ

  • What is a transform module?

    renameModule a function that renames the file name.

    Refer examples/toupper.rename.module.mock.js

    'use strict';
    /**
    * @param src string  Name of the file to rename
    *
    * @return renamed string
    */
    module.exports = function toUpperCase(src) {
      return src.toUpperCase();
    };
    $ recursive-copy source dest -r examples/toupper.rename.module.mock.js
    source -> dest
    source/a -> dest/A
    source/b -> dest/B
    source/c -> dest/C
    4 item(s) copied

    Refer recursive-copy for more info regarding rename function

  • What is a transform module?

    transform-module a function that transforms the content of the file

    Refer examples/toupper.transform.module.mock.js

    'use strict';
    const through2 = require('through2');
    
    /**
    * @param src string  Name of the source file
    * @param dest string Name of the dest file
    * @param stats fs.Stats stats of the src file
    *
    * @return TransformStream
    */
    module.exports = function caseTransform(src, _dest, _stats) {
      return through2(function (chunk, _encoding, callback) {
        this.push(chunk.toString().toUpperCase());
        callback();
      });
    };
    $ echo "Hello World" > testfile.txt
    $ recursive-copy testfile.txt transformedfile.txt -t examples/toupper.transform.module.mock.js
    testfile.txt -> transformedfile.txt
    1 item(s) copied
    $ cat transformedfile.txt
    HELLO WORLD

    Refer recursive-copy for more info regarding transform function.

  • Can I provide multiple modules?

    Yes, you can pipe the result of one module into another.

    recursive-copy srcPath destPath -r pascalcase ./path/to/a/renameModule.js
    recursive-copy srcPath destPath -t ./path/to/add-header-module.js ./path/to/change-eol-module.js

changelog

Changelog

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

1.0.20 (2021-08-21)

Bug Fixes

  • deps: bump yargs from 17.1.0 to 17.1.1 (9a9a2be)

1.0.19 (2021-08-07)

Bug Fixes

  • deps: bump yargs from 17.0.1 to 17.1.0 (31e9bc6)

1.0.18 (2021-07-03)

Bug Fixes

  • deps: bump recursive-copy from 2.0.11 to 2.0.13 (63e23eb)

1.0.17 (2021-05-29)

Bug Fixes

  • add & fix eslint:node lint checks (5f8d7e3)
  • build failure due to nullish-coalescing-operator (96401af)
  • eslint-config-prettier@8 errors (ab74318)
  • eslint:import/order issues (e57aba1)
  • eslint:plugin:@typescript-eslint/all warnings (f993f5f)
  • eslint:plugin:@typescript-eslint/all warnings (8777342)
  • issues with yargs@17.0.1 (7b31306)
  • npm audit fix (0fa3060)
  • rename-module & rename-pattern is not exclusive (98f135a)
  • deps: bump yargs from 16.2.0 to 17.0.1 (d9bd1e7)

1.0.16 (2021-03-06)

Bug Fixes

  • deps: bump lodash from 4.17.20 to 4.17.21 (892f42d)

1.0.15 (2020-12-12)

Bug Fixes

  • deps: bump yargs from 16.1.1 to 16.2.0 (0ea4485)

1.0.14 (2020-11-21)

Bug Fixes

  • deps: bump yargs from 16.1.0 to 16.1.1 (325a1d4)

1.0.13 (2020-10-17)

Bug Fixes

  • deps: bump yargs from 16.0.3 to 16.1.0 (120fa81)

1.0.12 (2020-09-12)

Bug Fixes

  • deps: bump yargs from 15.4.1 to 16.0.1 (a2bc35a)
  • deps: bump yargs from 16.0.1 to 16.0.3 (846e9b5)

1.0.11 (2020-09-05)

1.0.10 (2020-08-29)

Bug Fixes

  • deps: bump recursive-copy from 2.0.10 to 2.0.11 (8579e87)

1.0.9 (2020-08-15)

1.0.8 (2020-08-14)

Bug Fixes

  • deps: bump lodash from 4.17.19 to 4.17.20 (b85abe4)

1.0.7 (2020-07-14)

Bug Fixes

  • deps: bump yargs from 15.4.0 to 15.4.1 (a0fc983)

1.0.6 (2020-07-10)

Bug Fixes

  • deps: bump lodash from 4.17.15 to 4.17.19 (27c39e3)

1.0.5 (2020-07-08)

Bug Fixes

  • deps: bump yargs from 15.3.1 to 15.4.0 (3859447)
  • deps: bump yargs from 15.3.1 to 15.4.0 (fc7d3c6)

1.0.4 (2020-05-22)

Bug Fixes

  • v1.0.3 had some redundant files in the package (0e0ff59)

1.0.3 (2020-05-22)

1.0.2 (2020-05-22)

1.0.1 (2020-05-21)

Bug Fixes

  • node engines dependency was not set correctly (7a35f9f)

1.0.0 (2020-05-21)