findx-cli

0.2.2 • Public • Published

findx-cli

CLI to find and execute command for every glob match

Elegant replacement for each-cli, foreach-cli and *nix find -exec command in very little lines of code. Useful for NPM scripts or CI.

  • [x] Cross-platform
  • [x] Concurrency support
  • [x] Continue on error, then exit with code 1
  • [x] Control output of every execution
  • [x] Automatically show task progress in TTY

Install

$ npm i -g findx-cli

Usage

$ findx '**/*.jpg' -- convert {{path}} {{dir}}/{{name}}.png

This searches for all files matching the glob pattern, then runs the provided command against each match.

See below for more usage examples.

Options

Usage: findx <globs> [options] -- [commands...]

CLI to find and execute command for every glob match

Arguments:
  globs                   globs to match
  commands                commands to execute

Options:
  -C, --concurrent <max>  concurrent number of executions (default: 10)
  --log <level>           log level (choices: "stdout", "stderr", "all",
                          "none", default: "all")
  --sh                    run each execution in new shell
  --cd                    change to path directory for each run
  -V, --version           output the version number
  -h, --help              display help for command

Command Templating

Write your command using mustache syntax. The following tags are exposed:

Tag Eg Desc
{{path}} /home/user/dir/file.txt Full path of file
{{root}} / Root
{{dir}} /home/user/dir Directory portion
{{base}} file.txt File name with extension
{{name}} file Name portion
{{ext}} .txt Extension portion

Examples

Untar each tar file in its own directory

$ findx '**/*.tar' --cd -- tar -xvf {{base}}

Ignore some files and run shell-specific commands

$ findx '**/LICENSE !ignored/**' --sh -- 'cd {{dir}} && cat LICENSE'

Dry-run glob matches

$ findx '**/*.{txt,xml}'

Development

Standard Github contribution workflow applies.

Tests

Test specs are in test/spec.js. To run the tests:

$ npm run test

License

ISC

Package Sidebar

Install

npm i findx-cli

Weekly Downloads

1

Version

0.2.2

License

ISC

Unpacked Size

6.94 kB

Total Files

4

Last publish

Collaborators

  • zerodevx