Putzen
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![crates.io](https://img.shields.io/crates/v/putzen-cli.svg)](https://crates.io/crates/putzen-cli)
[![dependency status](https://deps.rs/repo/github/sassman/putzen-rs/status.svg)](https://deps.rs/repo/github/sassman/putzen-rs)
[![Build Status](https://github.com/sassman/putzen-rs/workflows/Build/badge.svg)](https://github.com/sassman/putzen-rs/actions?query=branch%3Amain+workflow%3ABuild+)
[![LOC](https://tokei.rs/b1/github/sassman/putzen-rs?category=code)](https://tokei.rs/b1/github/sassman/putzen-rs?category=code)
"putzen" is German and means cleaning. It helps keeping your disk clean of build and dependency artifacts safely.
![demo](resources/demo.gif)
## About
In short, putzen solves the problem of cleaning up build or dependency artifacts.
It does so by a simple "File" -> "Folder" rule. If the "File" and "Folder" is present, it cleans "Folder"
It also does all this fast, means in parallel (if the filesystem supports it).
### Supported Artifacts
putzen supports cleaning artifacts for:
| type | file that is checked | folder that is cleaned |
|------------|----------------------|------------------------|
| rust | Cargo.toml | target |
| javascript | package.json | node_modules |
| CMake | CMakeLists.txt | build |
furthermore, it does also support:
- It can do run a dry-run (`-d`)
- Interactive asking for deletion
- Sums up the space that will be freed
## Quick Start
### Install
### On Linux as snap
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/putzen)
- installation [for Linux Mint](https://snapcraft.io/install/putzen/mint)
- installation [for Arch Linux](https://snapcraft.io/install/putzen/arch)
*TL;DR:*
```sh
sudo snap install putzen
```
### With cargo
To install the `putzen`, you just need to run
```sh
cargo install putzen-cli
```
**Note** the binary is called `putzen` (without `-cli`)
to verify if the installation was successful, you can run `which putzen` that should output similar to
```sh
$HOME/.cargo/bin/putzen
```
### Usage
```sh
$ putzen --help
Usage: putzen