# đ cargo-x-do
**ăENGă** A modular, cross-platform task runner and workflow orchestrator for Rust projects. Automates git versioning, diagnostics, and project snapshots via local TOML configurations.
**ăPOLă** ModuĹowy, wieloplatformowy menedĹźer zadaĹ i orkiestrator przepĹywĂłw pracy dla projektĂłw Rust. Automatyzuje wersjonowanie git, diagnostykÄ i zrzuty projektu za pomocÄ
lokalnych konfiguracji TOML.
---
## đ ď¸ Installation / Instalacja
### 1. From Crates.io (Remote) / Z Crates.io (Zdalnie)
**ăENGă** Once the crate is published, install it directly from the registry:
**ăPOLă** Gdy paczka zostanie opublikowana, zainstaluj jÄ
bezpoĹrednio z rejestru:
```bash
cargo install cargo-x-do
```
### 2. From GitHub (Remote) / Z GitHub (Zdalnie)
**ăENGă** Install the latest development version directly from the source:
**ăPOLă** Zainstaluj najnowszÄ
wersjÄ rozwojowÄ
bezpoĹrednio ze ĹşrĂłdĹa:
```bash
cargo install --git https://github.com/j-Cis/cargo-x-do
```
### 3. Local Installation / Instalacja Lokalna
**ăENGă** If you are developing the tool itself, install it from the local directory:
**ăPOLă** JeĹli rozwijasz samo narzÄdzie, zainstaluj je z lokalnego katalogu:
```bash
# Inside cargo-x-do folder / WewnÄ
trz folderu cargo-x-do
cargo install --path .
```
---
## đď¸ Uninstallation / Odinstalowanie
**ăENGă** To remove the tool from your system, simply run:
**ăPOLă** Aby usunÄ
Ä narzÄdzie z systemu, po prostu wpisz:
```bash
cargo uninstall cargo-x-do
```
## ăENGă Features / ăPOLă Funkcje
* **ăENGă TOML-based Configuration ăPOLă Konfiguracja oparta na TOML**:
ăENGă Auto-generates and manages local settings in the `.x-do/` directory.
ăPOLă Automatycznie generuje i zarzÄ
dza lokalnymi ustawieniami w katalogu `.x-do/`.
* **ăENGă Modular Plugins ăPOLă ModuĹowe Wtyczki**:
ăENGă Divided into dedicated runners for formatting, checking, and snapshotting
ăPOLă Podzielone na dedykowane moduĹy do formatowania, sprawdzania bĹÄdĂłw i tworzenia zrzutĂłw kodu.
* **ăENGă Git Integration ăPOLă Integracja z Gitem**:
ăENGă Automatically creates commits before or after running formatting tasks (e.g., `clippy-fix`, `rustfmt`).
ăPOLă Automatycznie tworzy commity przed lub po wykonaniu zadaĹ formatujÄ
cych (np. `clippy-fix`, `rustfmt`).
* **ăENGă Targeted Execution ăPOLă Wykonywanie Celowane**:
ăENGă Run all tasks (`--all`) or specific ones by their `id` or `name`.
ăPOLă Uruchamiaj wszystkie zadania (`--all`) lub wybrane pojedyncze przy pomocy ich `id` lub `name`.
---
## ăENGă Installation / ăPOLă Instalacja
ăENGă To install `cargo-x-do` from crates.io (requires Rust 1.94.1+):
ăPOLă Aby zainstalowaÄ `cargo-x-do` z crates.io (wymaga Rust 1.94.1+):
```bash
cargo install cargo-x-do
````
---
## ăENGă Usage / ăPOLă UĹźycie
ăENGă The CLI supports three main subcommands, each representing a specific workflow plugin.
ăPOLă Interfejs wiersza poleceĹ obsĹuguje trzy gĹĂłwne podkomendy, z ktĂłrych kaĹźda odpowiada za konkretnÄ
wtyczkÄ.
### ăENGă 1. Diagnostics (check) / ăPOLă 1. Diagnostyka (check)
ăENGă Runs various `cargo check`, `cargo clippy`, `cargo test`, and `cargo audit` commands.
ăPOLă Uruchamia róşne komendy typu `cargo check`, `cargo clippy`, `cargo test` oraz `cargo audit`.
```bash
# ăENGă Aliases / ăPOLă Aliasy: check, c, err, e
cargo x-do check --init # ăENGă Initialize config / ăPOLă Inicjalizacja konfiguracji
cargo x-do check --all # ăENGă Run all tasks / ăPOLă Uruchom wszystkie zadania
cargo x-do check clippy-basic # ăENGă Run specific task by name / ăPOLă Uruchom konkretne zadanie po nazwie
cargo x-do check oC1 # ăENGă Run specific task by ID / ăPOLă Uruchom konkretne zadanie po ID
```
### ăENGă 2. Formatting & Corrections (format) / ăPOLă 2. Formatowanie i Poprawki (format)
ăENGă Applies code fixes, trims whitespaces, and runs `rustfmt`. Can be configured to auto-commit changes via git.
ăPOLă Aplikuje poprawki w kodzie, usuwa zbÄdne spacje i uruchamia `rustfmt`. MoĹźe byÄ skonfigurowane do automatycznego tworzenia commitĂłw w gicie.
```bash
# ăENGă Aliases / ăPOLă Aliasy: format, fmt, fix, f
cargo x-do format --init # ăENGă Initialize config / ăPOLă Inicjalizacja konfiguracji
cargo x-do format --all # ăENGă Run all formatters / ăPOLă Uruchom wszystkie formattery
cargo x-do format rustfmt # ăENGă Run specific task / ăPOLă Uruchom konkretne zadanie
```
### ăENGă 3. Project Snapshots (plot) / ăPOLă 3. Zrzuty Projektu (plot)
ăENGă Uses `cargo-plot` to generate text/markdown archives of your project for LLM context or backups.
ăPOLă UĹźywa narzÄdzia `cargo-plot` do generowania tekstowych archiwĂłw projektu (markdown) jako kontekst dla LLM lub kopie zapasowe.
```bash
# ăENGă Aliases / ăPOLă Aliasy: plot, print, p
cargo x-do plot --init # ăENGă Initialize config / ăPOLă Inicjalizacja konfiguracji
cargo x-do plot p1 # ăENGă Run snapshot task by ID / ăPOLă Uruchom zadanie zrzutu po ID
```
---
## ăENGă Configuration / ăPOLă Konfiguracja
ăENGă Running any `--init` command will generate a `.x-do` folder in your project root with the following TOML files:
ăPOLă Uruchomienie jakiejkolwiek komendy z flagÄ
`--init` wygeneruje folder `.x-do` w gĹĂłwnym katalogu projektu, zawierajÄ
cy nastÄpujÄ
ce pliki TOML:
* `.x-do/rust-checks.toml`
* `.x-do/rust-format.toml`
* `.x-do/cargo-plot.toml`
ăENGă You can customize commands, arguments (`args`), outputs (`output`), and execution order (`order`) directly in these files.
ăPOLă MoĹźesz dostosowaÄ komendy, argumenty (`args`), pliki wyjĹciowe (`output`) oraz kolejnoĹÄ wykonywania (`order`) bezpoĹrednio w tych plikach.
### ăENGă Git Auto-commits (in `rust-format.toml`) / ăPOLă Automatyczne commity (w `rust-format.toml`)
ăENGă The formatting engine supports global automatic commits:
ăPOLă Silnik formatujÄ
cy obsĹuguje globalne automatyczne commity:
```toml
git_commit = "per-task" # ăENGă options: "single", "per-task", "none" / ăPOLă opcje: "single", "per-task", "none"
when_commit = "before" # ăENGă options: "before", "after", "combo" / ăPOLă opcje: "before", "after", "combo"
message_before = "before: apply automatic fix/fmt"
```
---
## ăENGă General Command Help / ăPOLă OgĂłlna Pomoc ZadaĹ
```text
ăENGă plot: snapshots | err: observation | fix: corrections
ăPOLă plot: zrzuty | err: obserwacja | fix: poprawki
---
ăENGă --init: force re-init | --all: run all | id,id: run multiple
ăPOLă --init: wymuĹ init | --all: wszystko | id,id: wywoĹaj wiele
---
ăENGă (empty): lists tasks | (id): runs specific task by ID or Name
ăPOLă (puste): lista zadaĹ | (id): zadanie po ID lub nazwie
```
---
## ăENGă License / ăPOLă Licencja
ăENGă Licensed under either of [MIT](https://www.google.com/search?q=LICENSE-MIT) or [Apache-2.0](https://www.google.com/search?q=LICENSE-APACHE) at your option.
ăPOLă UdostÄpniane na licencji [MIT](https://www.google.com/search?q=LICENSE-MIT) lub [Apache-2.0](https://www.google.com/search?q=LICENSE-APACHE) (do wyboru).
---
**ăENGă** Built with â¤ď¸ by **Jan Roman Cisowski âj-Cisâ**.
\n**ăPOLă** Stworzone â¤ď¸ przez **Jana Romana Cisowskiego âj-Cisâ**.