Rollup merge of #104027 - ted-tanner:issue-103697-fix, r=jyn514

Place config.toml in current working directory if config not found

Fixes an issue where bootsrapping a Rust build would place `config.toml` in `{src_root}` rather than the current working directory

#103697
This commit is contained in:
Guillaume Gomez 2022-11-08 20:40:49 +01:00 committed by GitHub
commit 3abf329040
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 4 deletions

View File

@ -35,7 +35,7 @@ fn main() {
// NOTE: Since `./configure` generates a `config.toml`, distro maintainers will see the
// changelog warning, not the `x.py setup` message.
let suggest_setup = !config.config.exists() && !matches!(config.cmd, Subcommand::Setup { .. });
let suggest_setup = config.config.is_none() && !matches!(config.cmd, Subcommand::Setup { .. });
if suggest_setup {
println!("warning: you have not made a `config.toml`");
println!(

View File

@ -80,7 +80,7 @@ pub struct Config {
pub keep_stage_std: Vec<u32>,
pub src: PathBuf,
/// defaults to `config.toml`
pub config: PathBuf,
pub config: Option<PathBuf>,
pub jobs: Option<u32>,
pub cmd: Subcommand,
pub incremental: bool,
@ -926,8 +926,10 @@ impl Config {
// Give a hard error if `--config` or `RUST_BOOTSTRAP_CONFIG` are set to a missing path,
// but not if `config.toml` hasn't been created.
let mut toml = if !using_default_path || toml_path.exists() {
config.config = Some(toml_path.clone());
get_toml(&toml_path)
} else {
config.config = None;
TomlConfig::default()
};
@ -942,7 +944,6 @@ impl Config {
}
config.changelog_seen = toml.changelog_seen;
config.config = toml_path;
let build = toml.build.unwrap_or_default();

View File

@ -82,7 +82,7 @@ impl fmt::Display for Profile {
}
pub fn setup(config: &Config, profile: Profile) {
let path = &config.config;
let path = &config.config.clone().unwrap_or(PathBuf::from("config.toml"));
if path.exists() {
eprintln!(