build(rust): vendor rnix parser crate
This commit was merged in pull request #57.
This commit is contained in:
1 parent
cbdf482422
commit
82ad65a3a4
492 files changed
+67785
-1
No files matched your search
+46
@@ -0,0 +1,46 @@
|
||||
use std::{
|
||||
env,
|
||||
path::{Path, PathBuf},
|
||||
process::{Command, Stdio},
|
||||
};
|
||||
|
||||
fn project_root() -> PathBuf {
|
||||
PathBuf::from(
|
||||
env::var("CARGO_MANIFEST_DIR").unwrap_or_else(|_| env!("CARGO_MANIFEST_DIR").to_owned()),
|
||||
)
|
||||
}
|
||||
|
||||
fn run(cmd: &str, dir: impl AsRef<Path>) -> Result<(), ()> {
|
||||
let mut args: Vec<_> = cmd.split_whitespace().collect();
|
||||
let bin = args.remove(0);
|
||||
println!("> {}", cmd);
|
||||
let output = Command::new(bin)
|
||||
.args(args)
|
||||
.current_dir(dir)
|
||||
.stdin(Stdio::null())
|
||||
.stdout(Stdio::piped())
|
||||
.stderr(Stdio::inherit())
|
||||
.output()
|
||||
.map_err(drop)?;
|
||||
if output.status.success() {
|
||||
Ok(())
|
||||
} else {
|
||||
let stdout = String::from_utf8(output.stdout).map_err(drop)?;
|
||||
print!("{}", stdout);
|
||||
Err(())
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn check_code_formatting() {
|
||||
let dir = project_root();
|
||||
if run("rustfmt +stable --version", &dir).is_err() {
|
||||
panic!(
|
||||
"failed to run rustfmt from toolchain 'stable'; \
|
||||
please run `rustup component add rustfmt --toolchain stable` to install it.",
|
||||
);
|
||||
}
|
||||
if run("cargo +stable fmt -- --check", &dir).is_err() {
|
||||
panic!("code is not properly formatted; please format the code by running `cargo fmt`")
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user