mirror of
https://github.com/clap-rs/clap
synced 2024-12-13 22:32:33 +00:00
Auto merge of #482 - rtaycher:authors, r=kbknapp
feat(Authors Macro): adds a crate_authors macro Adds a crate_authors! macro that fetches crate authors from a (recently added) cargo enviromental variable populated from the Cargo file. Like the crate_version macro. Closes #447 Hopefully this fixed the previous problems.
This commit is contained in:
commit
93a07e36f7
3 changed files with 55 additions and 3 deletions
22
examples/19_auto_authors.rs
Normal file
22
examples/19_auto_authors.rs
Normal file
|
@ -0,0 +1,22 @@
|
|||
#[macro_use]
|
||||
extern crate clap;
|
||||
|
||||
#[cfg(feature = "unstable")]
|
||||
fn main() {
|
||||
use clap::App;
|
||||
App::new("myapp")
|
||||
.about("does awesome things")
|
||||
// use crate_authors! to pull the author(s) names from the Cargo.toml
|
||||
.author(crate_authors!())
|
||||
.get_matches();
|
||||
|
||||
// running the this app with the -h will display whatever author(s) are in your
|
||||
// Cargo.toml
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "unstable"))]
|
||||
fn main() {
|
||||
// if clap is not compiled with the unstable feature, it is disabled.
|
||||
println!("unstable feature disabled.");
|
||||
println!("Pass --features unstable to cargo when trying this example.");
|
||||
}
|
|
@ -110,9 +110,15 @@ impl<'a, 'b> App<'a, 'b> {
|
|||
App::from(yaml)
|
||||
}
|
||||
|
||||
/// Sets a string of author(s) that will be displayed to the user when they request the help
|
||||
/// information with `--help` or `-h`.
|
||||
/// Sets a string of author(s) that will be displayed to the user when they
|
||||
/// request the help information with `--help` or `-h`.
|
||||
///
|
||||
/// **Pro-tip:** If you turn on unstable features you can use `clap`s
|
||||
/// convienience macro `crate_authors!` to automatically set your
|
||||
/// application's author to the same thing as your crate at compile time.
|
||||
/// See the `examples/`
|
||||
/// directory for more information
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```no_run
|
||||
|
|
|
@ -350,7 +350,7 @@ macro_rules! arg_enum {
|
|||
};
|
||||
}
|
||||
|
||||
/// Allows you pull the version for an from your Cargo.toml at compile time as
|
||||
/// Allows you to pull the version from your Cargo.toml at compile time as
|
||||
/// MAJOR.MINOR.PATCH_PKGVERSION_PRE
|
||||
///
|
||||
/// # Examples
|
||||
|
@ -372,6 +372,30 @@ macro_rules! crate_version {
|
|||
};
|
||||
}
|
||||
|
||||
/// Allows you to pull the authors for the app from your Cargo.toml at
|
||||
/// compile time as
|
||||
/// "author1 lastname. <author1@example.com>",
|
||||
/// "author2 lastname. <author2@example.com>"
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```no_run
|
||||
/// # #[macro_use]
|
||||
/// # extern crate clap;
|
||||
/// # use clap::App;
|
||||
/// # fn main() {
|
||||
/// let m = App::new("app")
|
||||
/// .author(crate_authors!())
|
||||
/// .get_matches();
|
||||
/// # }
|
||||
/// ```
|
||||
#[cfg_attr(feature = "unstable", macro_export)]
|
||||
macro_rules! crate_authors {
|
||||
() => {
|
||||
env!("CARGO_PKG_AUTHORS")
|
||||
};
|
||||
}
|
||||
|
||||
/// App, Arg, SubCommand and Group builder macro (Usage-string like input) must be compiled with
|
||||
/// the `unstable` feature in order to use.
|
||||
#[cfg_attr(feature = "unstable", macro_export)]
|
||||
|
|
Loading…
Reference in a new issue