trinhminhtriet / rmrfrs

๐Ÿงน rmrfrs is a powerful filesystem cleaning tool designed to optimize storage by identifying and removing unnecessary files within known project structures.
MIT License
48 stars 2 forks source link

๐Ÿงน rmrfrs

                         __
 _ __  _ __ ___   _ __  / _| _ __  ___
| |__|| |_ ` _ \ | |__|| |_ | |__|/ __|
| |   | | | | | || |   |  _|| |   \__ \
|_|   |_| |_| |_||_|   |_|  |_|   |___/

๐Ÿงน 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

๐Ÿš€ Installation

To install rmrfrs, simply clone the repository and follow the instructions below:

git clone https://github.com/trinhminhtriet/rmrfrs.git
cd rmrfrs

cargo install --path .

Running the below command will globally install the rmrfrs binary.

cargo install rmrfrs

Optionally, you can add ~/.cargo/bin to your PATH if it's not already there

echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

๐Ÿ’ก Usage

Run rmrfrs with the following command to start cleaning your filesystem:

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 <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 <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 <GENERATOR>      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:

rmrfrs code/my_project code/my_project_2
rmrfrs --older 3M
rmrfrs -o3M

๐Ÿ—‘๏ธ Uninstallation

Running the below command will globally uninstall the rmrfrs binary.

cargo uninstall rmrfrs

Remove the project repo

rm -rf /path/to/git/clone/rmrfrs

๐Ÿค How to contribute

We welcome contributions!

Once your pull request has been merged, you can delete your branch.

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.