Fixes #2250; Error instead of panic when root directory or config file not present (#2262)

This commit is contained in:
Andrew Langmeier 2023-07-30 08:29:29 -04:00 committed by Vincent Prouillet
parent 1de1dd56de
commit 2cd133b9fb

View file

@ -26,18 +26,27 @@ fn get_config_file_path(dir: &Path, config_path: &Path) -> (PathBuf, PathBuf) {
std::process::exit(1);
});
// if we got here we found root_dir so config file should exist so we can unwrap safely
let config_file = root_dir
.join(config_path)
.canonicalize()
.unwrap_or_else(|_| panic!("could not find directory containing config file"));
// if we got here we found root_dir so config file should exist so we could theoretically unwrap safely
let config_file_uncanonicalized = root_dir.join(config_path);
let config_file = config_file_uncanonicalized.canonicalize().unwrap_or_else(|e| {
messages::unravel_errors(
&format!("Could not find canonical path of {}", config_file_uncanonicalized.display()),
&e.into(),
);
std::process::exit(1);
});
(root_dir.to_path_buf(), config_file)
}
fn main() {
let cli = Cli::parse();
let cli_dir: PathBuf = cli.root.canonicalize().unwrap_or_else(|_| {
panic!("Could not find canonical path of root dir: {}", cli.root.display())
let cli_dir: PathBuf = cli.root.canonicalize().unwrap_or_else(|e| {
messages::unravel_errors(
&format!("Could not find canonical path of root dir: {}", cli.root.display()),
&e.into(),
);
std::process::exit(1);
});
match cli.command {