forked from clap-rs/clap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
09_auto_version.rs
29 lines (26 loc) · 1.14 KB
/
09_auto_version.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#[macro_use]
extern crate clap;
use clap::App;
fn main() {
// You can have clap pull the application version directly from your Cargo.toml starting with
// clap v0.4.14 on crates.io (or master#a81f915 on github). Using Rust's env! macro like this:
//
// let version = format!("{}.{}.{}{}",
// env!("CARGO_PKG_VERSION_MAJOR"),
// env!("CARGO_PKG_VERSION_MINOR"),
// env!("CARGO_PKG_VERSION_PATCH"),
// option_env!("CARGO_PKG_VERSION_PRE").unwrap_or(""));
//
// Starting from v0.6.6 on crates.io you can also use the crate_version!() macro instead of
// manually using the env!() macros. Under the hood, the macro uses this exact method to get
// the version.
//
// Thanks to https://github.com/jhelwig for pointing this out
App::new("myapp")
.about("does awesome things")
// use crate_version! to pull the version number
.version(crate_version!())
.get_matches();
// running this app with the -V or --version will display whatever version is in your
// Cargo.toml, the default being: myapp 0.0.1
}