Show available profiles on error

This commit is contained in:
Antoine Martin 2020-10-05 17:55:14 +02:00
parent d3d3397121
commit 3afc004845
2 changed files with 12 additions and 1 deletions

View File

@ -542,7 +542,14 @@ Arguments:
|path| format!("{} is not a valid UTF8 string", path.to_string_lossy())
));
profile_string.parse().expect("unknown profile")
profile_string.parse().unwrap_or_else(|_| {
eprintln!("error: unknown profile {}", profile_string);
eprintln!("help: the available profiles are:");
for choice in Profile::all() {
eprintln!("- {}", choice);
}
std::process::exit(1);
})
} else {
t!(crate::setup::interactive_path())
};

View File

@ -18,6 +18,10 @@ impl Profile {
fn include_path(&self, src_path: &Path) -> PathBuf {
PathBuf::from(format!("{}/src/bootstrap/defaults/config.{}.toml", src_path.display(), self))
}
pub fn all() -> impl Iterator<Item = Self> {
[Profile::Compiler, Profile::Codegen, Profile::Library, Profile::User].iter().copied()
}
}
#[derive(Debug)]