From 0d7bd9f6a84b19d91b753c140bd8f201b96e2361 Mon Sep 17 00:00:00 2001 From: Arto Bendiken Date: Tue, 1 Oct 2024 15:21:53 +0400 Subject: [PATCH] Add information to the README. --- Cargo.toml | 2 +- README.md | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 99cdce4..ccbdfb1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ version = "0.1.4" authors = ["Arto Bendiken"] edition = "2021" rust-version = "1.70" -description = "Clientele.rs" +description = "Clientele packages `clap`, `dotenvy`, `argfile`, and `wild` into one dependency." #documentation = "https://docs.rs/clientele/" readme = true homepage = "https://clientele.rs" diff --git a/README.md b/README.md index cedb262..a0bebf5 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,21 @@ [![Compatibility](https://img.shields.io/badge/rust-1.70%2B-blue)](https://rust-lang.org) [![Package](https://img.shields.io/crates/v/clientele)](https://crates.io/crates/clientele) -🚧 _This is presently under heavy construction._ +**Clientele** makes it easy to write superb command-line utilities in Rust that +follow best practices on all target platforms including Linux, macOS, and +Windows. It packages and re-exports [`clap`], [`dotenvy`], [`argfile`], and +[`wild`] into a single easy dependency. + +## ✨ Features + +- Showcases how to structure a CLI program in Rust (see the [examples](#Examples)). +- Loads environment variables from `.env` files (using the [`dotenvy`] crate). +- Expands command-line wildcards (globs) on Windows (using the [`wild`] crate). +- Expands command-line @argfiles similarly to [`javac`] or Python (using the [`argfile`] crate). +- Defines a standard set of essential command-line options (using the [`clap`] crate). +- Supports opting out of any feature using comprehensive feature flags. +- Adheres to the Rust API Guidelines in its [naming conventions]. +- 100% free and unencumbered public domain software. ## 🛠️ Prerequisites @@ -20,6 +34,8 @@ cargo add clientele ## 👉 Examples +See [`lib/clientele/examples/skeleton/main.rs`] for a complete example. + ### Importing the library ```rust @@ -55,4 +71,13 @@ git clone https://github.com/artob/clientele.rs.git [![Share on Hacker News](https://img.shields.io/badge/share%20on-hacker%20news-orange?logo=ycombinator)](https://news.ycombinator.com/submitlink?u=https://github.com/artob/clientele.rs&t=Clientele.rs) [![Share on Facebook](https://img.shields.io/badge/share%20on-facebook-1976D2?logo=facebook)](https://www.facebook.com/sharer/sharer.php?u=https://github.com/artob/clientele.rs) +[naming conventions]: https://rust-lang.github.io/api-guidelines/naming.html + [`StandardOptions`]: https://docs.rs/clientele/latest/clientele/struct.StandardOptions.html +[`javac`]: https://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html#commandlineargfile +[`lib/clientele/examples/skeleton/main.rs`]: lib/clientele/examples/skeleton/main.rs + +[`argfile`]: https://crates.io/crates/argfile +[`clap`]: https://crates.io/crates/clap +[`dotenvy`]: https://crates.io/crates/dotenvy +[`wild`]: https://crates.io/crates/wild