1 unstable release
0.1.16 | Jul 25, 2024 |
---|
27KB
592 lines
loop / loop_cmd
loop
is a simple, but powerful command-line tool that allows you to execute commands in multiple directories simultaneously. It's designed to simplify batch operations across multiple projects or subdirectories, making it an essential tool for developers managing complex project structures.
Features
- Execute commands in child directories
- Include or exclude specific directories
- Use patterns to filter directories
- Initialize configuration file
Installation
You can install loop
using the following command:
curl -fsSL https://raw.githubusercontent.com/mateodelnorte/loop_cmd/main/install.sh | sh
This will download and install loop
so that it can be used as a command from your PATH.
Usage
Basic Usage
Execute a command in all immediate subdirectories:
loop "git status"
Include Specific Directories
Execute a command only in specified directories:
loop "npm install" --include dir1 dir2
Exclude Directories
Execute a command in all subdirectories except specified ones:
loop "cargo build" --exclude target node_modules
Use Patterns
Include directories matching a pattern:
loop "yarn test" --include-pattern "app-"
Exclude directories matching a pattern:
loop "make clean" --exclude-pattern "-old"
Initialize Configuration
Create a .looprc
configuration file in your current directory:
loop --init
The above will create a .looprc
file in your current directory similar to the following:
{
"ignore": [
".git"
]
}
This file can be used to set default options for the loop
command. The above file, for instance, will automatically apply --ignore .git .vagrant .vscode target
to all commands run using loop
within the directory containing the file.
Configuration
You can create a .looprc
file in your current directory to set default options. Use loop --init
to create a template configuration file.
Examples
- Update all Git repositories:
loop "git pull origin main"
- Run tests in all JavaScript projects:
loop "npm test" --include-pattern "*-js"
- Clean build artifacts in C++ projects:
loop "make clean" --exclude build node_modules
- Update dependencies in Python projects:
loop "pip install -r requirements.txt --upgrade" --include-pattern "py-*"
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
Dependencies
~4–12MB
~144K SLoC