aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xtask/src/lib.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/xtask/src/lib.rs b/xtask/src/lib.rs
index cc69463a9..bae4c4650 100644
--- a/xtask/src/lib.rs
+++ b/xtask/src/lib.rs
@@ -3,6 +3,7 @@
3pub mod codegen; 3pub mod codegen;
4 4
5use std::{ 5use std::{
6 env,
6 error::Error, 7 error::Error,
7 fs, 8 fs,
8 io::{Error as IoError, ErrorKind}, 9 io::{Error as IoError, ErrorKind},
@@ -17,7 +18,13 @@ pub type Result<T> = std::result::Result<T, Box<dyn Error>>;
17const TOOLCHAIN: &str = "stable"; 18const TOOLCHAIN: &str = "stable";
18 19
19pub fn project_root() -> PathBuf { 20pub fn project_root() -> PathBuf {
20 Path::new(&env!("CARGO_MANIFEST_DIR")).ancestors().nth(1).unwrap().to_path_buf() 21 Path::new(
22 &env::var("CARGO_MANIFEST_DIR").unwrap_or_else(|_| env!("CARGO_MANIFEST_DIR").to_owned()),
23 )
24 .ancestors()
25 .nth(1)
26 .unwrap()
27 .to_path_buf()
21} 28}
22 29
23pub struct Cmd<'a> { 30pub struct Cmd<'a> {