<a name="readme-top"></a>
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
<br />
<div align="center">
<a href="https://github.com/kingwingfly/asyncrun">
<img src="images/logo.png" alt="Logo" width="80" height="80">
</a>
<h3 align="center">async_run</h3>
<p align="center">
Asynchronously execute shell commands in selected subdirectories based on specified conditions.
<br />
<a href="https://github.com/kingwingfly/asyncrun"><strong>Explore the docs »</strong></a>
<br />
<br />
<a href="https://github.com/kingwingfly/asyncrun">View Demo</a>
·
<a href="https://github.com/kingwingfly/asyncrun/issues/new?labels=bug&template=bug-report---.md">Report Bug</a>
·
<a href="https://github.com/kingwingfly/asyncrun/issues/new?labels=enhancement&template=feature-request---.md">Request Feature</a>
</p>
</div>
<details>
<summary>Table of Contents</summary>
<ol>
<li>
<a href="#about-the-project">About The Project</a>
<ul>
<li><a href="#built-with">Built With</a></li>
</ul>
</li>
<li>
<a href="#getting-started">Getting Started</a>
<ul>
<li><a href="#prerequisites">Prerequisites</a></li>
<li><a href="#installation">Installation</a></li>
</ul>
</li>
<li><a href="#usage">Usage</a></li>
<li><a href="#roadmap">Roadmap</a></li>
<li><a href="#contributing">Contributing</a></li>
<li><a href="#license">License</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
</ol>
</details>
## About The Project
[![Product Name Screen Shot][product-screenshot]](https://github.com/kingwingfly/asyncrun)
<p align="right">(<a href="#readme-top">back to top</a>)</p>
### Built With
* [![Rust][Rust]][Rust-url]
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Getting Started
Download at [release](https://github.com/kingwingfly/asyncrun/releases) page. Or
```sh
cargo install asyncrun
```
Or compile yourself:
### Prerequisites
* Install Rust
```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
### Compilation
1. Clone the repo
```sh
git clone https://github.com/kingwingfly/asyncrun.git
```
2. Compilation
```sh
cargo build --release
```
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Usage
```sh
Asynchronously execute bash commands in selected subdirectories based on specified conditions.
Usage: asyncrun [OPTIONS] [PATH] -- <COMMANDS>...
Arguments:
[PATH] Path to search for directories [default: /Users/louis/rust/asyncrun]
<COMMANDS>... Commands to run in each directory
Options:
-e <EXIST> Filter by target names exist
-E <NOT_EXIST> Filter by target names non exist
-n <ASYNC_NUM> Number of async commands to run concurrently [default: 1024]
-h, --help Print help
-V, --version Print version
```
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Roadmap
- [ ] Feature
See the [open issues](https://github.com/kingwingfly/asyncrun/issues) for a full list of proposed features (and known issues).
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## License
Distributed under the MIT License. See `LICENSE.txt` for more information.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Contact
Louis - 836250617@qq.com
Project Link: [https://github.com/kingwingfly/asyncrun](https://github.com/kingwingfly/asyncrun)
<p align="right">(<a href="#readme-top">back to top</a>)</p>
## Acknowledgments
* []()
<p align="right">(<a href="#readme-top">back to top</a>)</p>
[contributors-shield]: https://img.shields.io/github/contributors/kingwingfly/asyncrun.svg?style=for-the-badge
[contributors-url]: https://github.com/kingwingfly/asyncrun/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/kingwingfly/asyncrun.svg?style=for-the-badge
[forks-url]: https://github.com/kingwingfly/asyncrun/network/members
[stars-shield]: https://img.shields.io/github/stars/kingwingfly/asyncrun.svg?style=for-the-badge
[stars-url]: https://github.com/kingwingfly/asyncrun/stargazers
[issues-shield]: https://img.shields.io/github/issues/kingwingfly/asyncrun.svg?style=for-the-badge
[issues-url]: https://github.com/kingwingfly/asyncrun/issues
[license-shield]: https://img.shields.io/github/license/kingwingfly/asyncrun.svg?style=for-the-badge
[license-url]: https://github.com/kingwingfly/asyncrun/blob/master/LICENSE.txt
[product-screenshot]: images/screenshot.png
[Rust]: https://img.shields.io/badge/Rust-000000?style=for-the-badge&logo=Rust&logoColor=orange
[Rust-url]: https://www.rust-lang.org