-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of #554 - kbknapp:issue-376, r=kbknapp
Issue 376
- Loading branch information
Showing
7 changed files
with
427 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
[package] | ||
|
||
name = "clap" | ||
version = "2.8.0" | ||
version = "2.9.0" | ||
authors = ["Kevin K. <[email protected]>"] | ||
exclude = ["examples/*", "clap-test/*", "tests/*", "benches/*", "*.png", "clap-perf/*", "*.dot"] | ||
description = "A simple to use, efficient, and full featured Command Line Argument Parser" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
# clap | ||
clap | ||
==== | ||
|
||
[![Crates.io](https://img.shields.io/crates/v/clap.svg)](https://crates.io/crates/clap) [![Crates.io](https://img.shields.io/crates/d/clap.svg)](https://crates.io/crates/clap) [![license](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/kbknapp/clap-rs/blob/master/LICENSE-MIT) [![Coverage Status](https://coveralls.io/repos/kbknapp/clap-rs/badge.svg?branch=master&service=github)](https://coveralls.io/github/kbknapp/clap-rs?branch=master) [![Join the chat at https://gitter.im/kbknapp/clap-rs](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/kbknapp/clap-rs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||
|
||
|
@@ -38,6 +39,10 @@ Created by [gh-md-toc](https://github.com/ekalinin/github-markdown-toc) | |
|
||
## What's New | ||
|
||
Here's the highlights for v2.9.0 | ||
|
||
* **Completions:** one can now generate a bash completions script at compile time! | ||
|
||
Here's the highlights for v2.8.0 | ||
|
||
* **Arg:** adds new optional setting `Arg::require_delimiter` which requires val delimiter to parse multiple values | ||
|
@@ -192,6 +197,8 @@ Below are a few of the features which `clap` supports, full descriptions and usa | |
|
||
* **Auto-generated Help, Version, and Usage information** | ||
- Can optionally be fully, or partially overridden if you want a custom help, version, or usage | ||
* **Auto-generated bash completion scripts at compile time** | ||
- Even works through many multiple levels of subcommands | ||
* **Flags / Switches** (i.e. bool fields) | ||
- Both short and long versions supported (i.e. `-f` and `--flag` respectively) | ||
- Supports combining short versions (i.e. `-fBgoZ` is the same as `-f -B -g -o -Z`) | ||
|
@@ -340,37 +347,6 @@ fn main() { | |
} | ||
``` | ||
|
||
The following combines the previous two examples by using the less verbose `from_usage` methods and the performance of the Builder Pattern. | ||
|
||
```rust | ||
// (Full example with detailed comments in examples/01c_quick_example.rs) | ||
// Must be compiled with `--features unstable` | ||
// | ||
// This example demonstrates clap's "usage strings" method of creating arguments which is less | ||
// less verbose | ||
#[macro_use] | ||
extern crate clap; | ||
|
||
fn main() { | ||
let matches = clap_app!(myapp => | ||
(version: "1.0") | ||
(author: "Kevin K. <[email protected]>") | ||
(about: "Does awesome things") | ||
(@arg config: -c --config +takes_value "Sets a custom config file") | ||
(@arg INPUT: +required "Sets the input file to use") | ||
(@arg verbose: -v ... "Sets the level of verbosity") | ||
(@subcommand test => | ||
(about: "controls testing features") | ||
(version: "1.3") | ||
(author: "Someone E. <[email protected]>") | ||
(@arg verbose: -d --debug "Print debug information") | ||
) | ||
).get_matches(); | ||
|
||
// Same as previous examples... | ||
} | ||
``` | ||
|
||
This final method shows how you can use a YAML file to build your CLI and keep your Rust source tidy or support multiple localized translations by having different YAML files for each localization. First, create the `cli.yml` file to hold your CLI options, but it could be called anything we like (we'll use the same both examples above to keep it functionally equivalent): | ||
|
||
```yaml | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.