# ๐Ÿงน rmrfrs ```text __ _ __ _ __ ___ _ __ / _| _ __ ___ | |__|| |_ ` _ \ | |__|| |_ | |__|/ __| | | | | | | | || | | _|| | \__ \ |_| |_| |_| |_||_| |_| |_| |___/ ``` ๐Ÿงน rmrfrs is a powerful filesystem cleaning tool designed to optimize storage by identifying and removing unnecessary files within known project structures.

20+ Supported Project Types

Cargo (Rust), CMake (C, C++), Composer (PHP), Elixir, Godot 4.x (C#, GDScript)

Gradle (Java) Jupyter Notebook (Python), Pixi (Python), Maven (Java), Node (JavaScript)

Pub (Dart), Python SBT (Scala), Stack (Haskell), Swift

Unity (C#), Unreal Engine (C++), Zig, .NET (C#, F#) Turborepo (JavaScript)

## โœจ Features - **Recursive Search**: Scans directories and subdirectories for recognized project structures. - **Space Savings**: Estimates the amount of space that can be freed by deleting redundant files. ## ๐Ÿš€ Installation To install **rmrfrs**, simply clone the repository and follow the instructions below: ```bash git clone https://github.com/trinhminhtriet/rmrfrs.git cd rmrfrs cargo install --path . ``` Running the below command will globally install the `rmrfrs` binary. ```bash cargo install rmrfrs ``` Optionally, you can add `~/.cargo/bin` to your PATH if it's not already there ```bash echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc source ~/.bashrc ``` ## ๐Ÿ’ก Usage Run **rmrfrs** with the following command to start cleaning your filesystem: ```text rmrfrs --help rmrfrs recursively cleans project directories Usage: rmrfrs [OPTIONS] [DIRS]... Arguments: [DIRS]... The directories to examine. Current directory will be used if DIRS is omitted Options: -I, --ignored-dirs Directories to ignore. Will also prevent recursive traversal within -q, --quiet... Quiet mode. Won't output to the terminal. -qq prevents all output -a, --all Clean all found projects without confirmation -L, --follow-symlinks Follow symbolic links -s, --same-filesystem Restrict directory traversal to the root filesystem -o, --older Only directories with a file last modified n units of time ago will be looked at. Ex: 20d. Units are m: minutes, h: hours, d: days, w: weeks, M: months and y: years [default: 0d] --completions Generates completions for the specified shell [possible values: bash, elvish, fish, powershell, zsh] -d, --default If there is no input, defaults to yes -h, --help Print help (see more with '--help') ``` Ex: ```bash rmrfrs code/my_project code/my_project_2 rmrfrs --older 3M rmrfrs -o3M ``` ## ๐Ÿ—‘๏ธ Uninstallation Running the below command will globally uninstall the `rmrfrs` binary. ```bash cargo uninstall rmrfrs ``` Remove the project repo ```bash rm -rf /path/to/git/clone/rmrfrs ``` ## ๐Ÿค How to contribute We welcome contributions! - Fork this repository; - Create a branch with your feature: `git checkout -b my-feature`; - Commit your changes: `git commit -m "feat: my new feature"`; - Push to your branch: `git push origin my-feature`. Once your pull request has been merged, you can delete your branch. ## ๐Ÿ“ License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.