allcleaner 0.1.0

One-command updater for Linux, Flutter, and Rust — updates your system and cleans project caches in parallel
# allcleaner

One-command updater for Linux, Flutter, and Rust. Updates your system and cleans project caches in parallel.

## What it does

Running `allcleaner` performs three tasks **in parallel** using Tokio:

1. **System update** — detects your package manager (`apt`, `dnf`, or `pacman`) and runs a system-wide update
2. **Flutter update** — runs `flutter upgrade` (only if updates are available), then finds all Flutter projects in `~/dev` and runs `flutter clean` in each
3. **Rust update** — runs `rustup update` (only if updates are available), then finds all Rust projects in `~/dev` and runs `cargo clean && rm Cargo.lock` in each

All stdout/stderr from update commands is streamed to the terminal in real time so you can track progress.

## Installation

### Via `cargo-binstall` (recommended — fast, no compilation)

```bash
cargo binstall allcleaner
```

### Via `cargo` (builds from source)

```bash
cargo install allcleaner
```

## Usage

```bash
allcleaner <sudo_password>
```

### Example

```bash
allcleaner mypassword123
```

### Logging

By default, `allcleaner` logs at `info` level for external crates and `debug` for itself. You can override this with the `RUST_LOG` environment variable:

```bash
RUST_LOG=debug allcleaner <sudo_password>
```

## Requirements

- **Linux** with one of: `apt`, `dnf`, or `pacman`
- **Flutter** (optional — skipped if not installed)
- **Rust** via rustup (optional — skipped if not installed)

## License

Licensed under either of

- MIT license ([LICENSE-MIT]LICENSE-MIT or <http://opensource.org/licenses/MIT>)
- Apache License, Version 2.0 ([LICENSE-APACHE]LICENSE-APACHE or <http://www.apache.org/licenses/LICENSE-2.0>)

at your option.