1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2024-12-12 19:18:24 +02:00
ripgrep/build.rs

48 lines
1.4 KiB
Rust
Raw Normal View History

#[macro_use]
extern crate clap;
#[macro_use]
extern crate lazy_static;
2016-12-07 17:32:24 +02:00
use std::env;
use std::fs;
use std::process;
use clap::Shell;
#[allow(dead_code)]
#[path = "src/app.rs"]
mod app;
fn main() {
// OUT_DIR is set by Cargo and it's where any additional build artifacts
// are written.
2016-12-07 17:32:24 +02:00
let outdir = match env::var_os("OUT_DIR") {
Some(outdir) => outdir,
None => {
eprintln!(
"OUT_DIR environment variable not defined. \
Please file a bug: \
https://github.com/BurntSushi/ripgrep/issues/new");
process::exit(1);
}
2016-12-07 17:32:24 +02:00
};
fs::create_dir_all(&outdir).unwrap();
// Use clap to build completion files.
let mut app = app::app();
2016-12-07 17:32:24 +02:00
app.gen_completions("rg", Shell::Bash, &outdir);
app.gen_completions("rg", Shell::Fish, &outdir);
app.gen_completions("rg", Shell::PowerShell, &outdir);
// Note that we do not use clap's support for zsh. Instead, zsh completions
// are manually maintained in `complete/_rg`.
// Make the current git hash available to the build.
let result = process::Command::new("git")
.args(&["rev-parse", "--short=10", "HEAD"])
.output();
if let Ok(output) = result {
let hash = String::from_utf8_lossy(&output.stdout);
println!("cargo:rustc-env=RIPGREP_BUILD_GIT_HASH={}", hash);
}
}