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.
- Cross-platform
- Concurrency support
- Continue on error, then exit with code 1
- Control output of every execution
- Automatically show task progress in TTY
$ npm i -g findx-cli
$ 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.
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
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 |
$ findx '**/*.tar' --cd -- tar -xvf {{base}}
$ findx '**/LICENSE !ignored/**' --sh -- 'cd {{dir}} && cat LICENSE'
$ findx '**/*.{txt,xml}'
Standard Github contribution workflow applies.
Test specs are in test/spec.js
. To run the tests:
$ npm run test
ISC