11f31bfdc8
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 |
||
---|---|---|
.. | ||
src | ||
.cargo-checksum.json | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md |
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:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)