gecko-dev/third_party/rust/version_check
Bastien Orivel 11f31bfdc8 Bug 1396824 - Part 2: Revendor dependencies. r=ato
Differential Revision: https://phabricator.services.mozilla.com/D34632

--HG--
rename : third_party/rust/crossbeam-utils-0.3.2/Cargo.toml => third_party/rust/crossbeam-channel/Cargo.toml
rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/crossbeam-channel/LICENSE-APACHE
rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/crossbeam-channel/LICENSE-MIT
rename : third_party/rust/tokio-timer/Cargo.toml => third_party/rust/headers-core/Cargo.toml
rename : third_party/rust/hyper/LICENSE => third_party/rust/headers-core/LICENSE
rename : third_party/rust/tokio-timer/Cargo.toml => third_party/rust/headers-derive/Cargo.toml
rename : third_party/rust/hyper/LICENSE => third_party/rust/headers-derive/LICENSE
rename : third_party/rust/hyper/LICENSE => third_party/rust/headers/LICENSE
rename : third_party/rust/tokio-timer/Cargo.toml => third_party/rust/input_buffer/Cargo.toml
rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/input_buffer/LICENSE-APACHE
rename : third_party/rust/hyper/LICENSE => third_party/rust/input_buffer/LICENSE-MIT
rename : third_party/rust/tokio-executor/Cargo.toml => third_party/rust/mime/Cargo.toml
rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/mime/LICENSE-APACHE
rename : third_party/rust/hyper/LICENSE => third_party/rust/mime/LICENSE-MIT
rename : third_party/rust/hyper/LICENSE => third_party/rust/mime_guess/LICENSE
rename : third_party/rust/scoped-tls/.cargo-checksum.json => third_party/rust/scoped-tls-0.1.0/.cargo-checksum.json
rename : third_party/rust/scoped-tls/Cargo.toml => third_party/rust/scoped-tls-0.1.0/Cargo.toml
rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/scoped-tls-0.1.0/LICENSE-APACHE
rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/scoped-tls-0.1.0/LICENSE-MIT
rename : third_party/rust/scoped-tls/README.md => third_party/rust/scoped-tls-0.1.0/README.md
rename : third_party/rust/scoped-tls/src/lib.rs => third_party/rust/scoped-tls-0.1.0/src/lib.rs
rename : third_party/rust/tokio-uds/LICENSE-APACHE => third_party/rust/serde_urlencoded/LICENSE-APACHE
rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/serde_urlencoded/LICENSE-MIT
rename : third_party/rust/tokio-executor/Cargo.toml => third_party/rust/tokio-current-thread/Cargo.toml
rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/tokio-current-thread/LICENSE
rename : third_party/rust/tokio-timer/README.md => third_party/rust/tokio-current-thread/README.md
rename : third_party/rust/tokio/src/executor/current_thread/mod.rs => third_party/rust/tokio-current-thread/src/lib.rs
rename : third_party/rust/tokio/src/executor/current_thread/scheduler.rs => third_party/rust/tokio-current-thread/src/scheduler.rs
rename : third_party/rust/tokio-executor/src/lib.rs => third_party/rust/tokio-executor/src/executor.rs
rename : third_party/rust/tokio-timer/src/timer/level.rs => third_party/rust/tokio-timer/src/wheel/level.rs
rename : third_party/rust/tokio-uds/.cargo-checksum.json => third_party/rust/tokio-uds-0.1.7/.cargo-checksum.json
rename : third_party/rust/tokio-uds/Cargo.toml => third_party/rust/tokio-uds-0.1.7/Cargo.toml
rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/tokio-uds-0.1.7/LICENSE-APACHE
rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/tokio-uds-0.1.7/LICENSE-MIT
rename : third_party/rust/tokio-uds/README.md => third_party/rust/tokio-uds-0.1.7/README.md
rename : third_party/rust/tokio-uds/src/frame.rs => third_party/rust/tokio-uds-0.1.7/src/frame.rs
rename : third_party/rust/tokio-uds/src/lib.rs => third_party/rust/tokio-uds-0.1.7/src/lib.rs
rename : third_party/rust/tokio-uds/src/ucred.rs => third_party/rust/tokio-uds-0.1.7/src/ucred.rs
rename : third_party/rust/tokio-uds/LICENSE-MIT => third_party/rust/tokio-uds/LICENSE
rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/tungstenite/LICENSE-APACHE
rename : third_party/rust/hyper/LICENSE => third_party/rust/tungstenite/LICENSE-MIT
rename : third_party/rust/tokio-timer/Cargo.toml => third_party/rust/unicase-1.4.2/Cargo.toml
rename : third_party/rust/hyper/LICENSE => third_party/rust/unicase-1.4.2/LICENSE
rename : third_party/rust/crossbeam-utils/Cargo.toml => third_party/rust/unicase/Cargo.toml
rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/unicase/LICENSE-APACHE
rename : third_party/rust/hyper/LICENSE => third_party/rust/unicase/LICENSE-MIT
rename : third_party/rust/hyper/LICENSE => third_party/rust/urlencoding/LICENSE
rename : third_party/rust/tokio-executor/Cargo.toml => third_party/rust/utf-8/Cargo.toml
rename : third_party/rust/tokio-timer/Cargo.toml => third_party/rust/version_check/Cargo.toml
rename : third_party/rust/crossbeam-utils-0.3.2/LICENSE-APACHE => third_party/rust/version_check/LICENSE-APACHE
rename : third_party/rust/hyper/LICENSE => third_party/rust/warp/LICENSE
extra : moz-landing-system : lando
2019-06-21 17:18:50 +00:00
..
src Bug 1396824 - Part 2: Revendor dependencies. r=ato 2019-06-21 17:18:50 +00:00
.cargo-checksum.json Bug 1396824 - Part 2: Revendor dependencies. r=ato 2019-06-21 17:18:50 +00:00
Cargo.toml Bug 1396824 - Part 2: Revendor dependencies. r=ato 2019-06-21 17:18:50 +00:00
LICENSE-APACHE Bug 1396824 - Part 2: Revendor dependencies. r=ato 2019-06-21 17:18:50 +00:00
LICENSE-MIT Bug 1396824 - Part 2: Revendor dependencies. r=ato 2019-06-21 17:18:50 +00:00
README.md Bug 1396824 - Part 2: Revendor dependencies. r=ato 2019-06-21 17:18:50 +00:00

README.md

version_check

This tiny crate checks that the running or installed rustc meets some version requirements. The version is queried by calling the Rust compiler with --version. The path to the compiler is determined first via the RUSTC environment variable. If it is not set, then rustc is used. If that fails, no determination is made, and calls return None.

Usage

Add to your Cargo.toml file, typically as a build dependency:

[build-dependencies]
version_check = "0.1"

Examples

Check that the running compiler is a nightly release:

extern crate version_check;

match version_check::is_nightly() {
    Some(true) => "running a nightly",
    Some(false) => "not nightly",
    None => "couldn't figure it out"
};

Check that the running compiler is at least version 1.13.0:

extern crate version_check;

match version_check::is_min_version("1.13.0") {
    Some((true, version)) => format!("Yes! It's: {}", version),
    Some((false, version)) => format!("No! {} is too old!", version),
    None => "couldn't figure it out".into()
};

Check that the running compiler was released on or after 2016-12-18:

extern crate version_check;

match version_check::is_min_date("2016-12-18") {
    Some((true, date)) => format!("Yes! It's: {}", date),
    Some((false, date)) => format!("No! {} is too long ago!", date),
    None => "couldn't figure it out".into()
};

Alternatives

This crate is dead simple with no dependencies. If you need something more and don't care about panicking if the version cannot be obtained or adding dependencies, see rustc_version.

License

version_check is licensed under either of the following, at your option: