From 86c513e605e7982c00587e05a33a1062ca9a5334 Mon Sep 17 00:00:00 2001 From: Jeremy Fitzhardinge Date: Sat, 26 Jan 2019 16:11:30 -0800 Subject: [PATCH] Let CLIPPY_CONF_DIR be used to start search for config, and fall back to CARGO_MANIFEST_DIR if it isn't set. If CARGO_MANIFEST_DIR isn't set, fall back "." rather than panicing. Issue #3663 --- clippy_lints/src/utils/conf.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/clippy_lints/src/utils/conf.rs b/clippy_lints/src/utils/conf.rs index 09d204a562c9..b0b4394ebb88 100644 --- a/clippy_lints/src/utils/conf.rs +++ b/clippy_lints/src/utils/conf.rs @@ -163,8 +163,13 @@ pub fn lookup_conf_file() -> io::Result> { /// Possible filename to search for. const CONFIG_FILE_NAMES: [&str; 2] = [".clippy.toml", "clippy.toml"]; - let mut current = path::PathBuf::from(env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR not set")); - + // Start looking for a config file in CLIPPY_CONF_DIR, or failing that, CARGO_MANIFEST_DIR. + // If neither of those exist, use ".". + let mut current = path::PathBuf::from( + env::var("CLIPPY_CONF_DIR") + .or_else(|_| env::var("CARGO_MANIFEST_DIR")) + .unwrap_or_else(|_| ".".to_string()), + ); loop { for config_file_name in &CONFIG_FILE_NAMES { let config_file = current.join(config_file_name);