domain-cli
Umiejętność do budowania narzędzi CLI z obsługą parsowania argumentów, konfiguracji warstwowej i interfejsu terminalowego.
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Domain-cli to umiejętność dla twórców narzędzi wiersza poleceń w Rust. Zawiera wzorce dla obsługi argumentów (clap), warstwowej konfiguracji (CLI > zmienne środowiska > plik > domyślne), poprawnych kodów wyjścia, separacji stdout/stderr oraz obsługi sygnałów przerwania. Pomaga zbudować ergonomiczne CLI z jasną pomocą, kolorowymi komunikatami, paskami postępu (indicatif) i interfejsami interaktywnymi (ratatui, dialoguer).
Jak używać
Dodaj umiejętność domain-cli do swojego projektu Rust jako referencję w kontekście budowania narzędzia wiersza poleceń. Umiejętność aktywuje się automatycznie gdy system wykryje plik Cargo.toml w twoim projekcie.
Zdefiniuj strukturę argumentów CLI używając derive makr clap. Utwórz strukturę Rust z atrybutami #[derive(Parser)] i opisz każde pole jako argument lub flagę — clap automatycznie wygeneruje parser i wiadomość pomocy.
Ustaw warstwową konfigurację: argumenty CLI mają najwyższy priorytet, następnie zmienne środowiska, potem plik konfiguracyjny, wreszcie wartości domyślne. Użyj figment lub config do łączenia źródeł konfiguracji w określonej kolejności.
Obsługuj błędy prawidłowo — wypisuj komunikaty błędów na stderr (eprintln!), dane na stdout (println!), i zwracaj niezerowe kody wyjścia. Zdefiniuj main() zwracającą Result<(), Error> aby automatycznie obsługiwać błędy.
Dla narzędzi interaktywnych dodaj pasy postępu (indicatif), kolorowe wyjście (colored) i interaktywne monity (dialoguer). Obsługuj przerwanie Ctrl+C poprzez obsługę sygnałów, aby narzędzie mogło się czysto zamknąć.
Dla bardziej złożonych interfejsów terminalowych rozważ ratatui do budowania TUI — umiejętność zawiera wytyczne do integracji z crossterm do kontroli terminala.
Podobne skille
content-trend-researcher
autor: alirezarezvani
godot-gdscript-patterns
autor: sickn33
penpot-uiux-design
autor: github
software-architecture
autor: davila7
motion-graphics
autor: rohitg00
ux-writing
autor: content-designer