Skip to content

Commit

Permalink
Rollup merge of rust-lang#104027 - ted-tanner:issue-103697-fix, r=jyn514
Browse files Browse the repository at this point in the history
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

rust-lang#103697
  • Loading branch information
Manishearth committed Nov 8, 2022
2 parents f2a7d56 + 66e8a29 commit 2b70c6a
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/bootstrap/bin/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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!(
Expand Down
5 changes: 3 additions & 2 deletions src/bootstrap/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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()
};

Expand All @@ -942,7 +944,6 @@ impl Config {
}

config.changelog_seen = toml.changelog_seen;
config.config = toml_path;

let build = toml.build.unwrap_or_default();

Expand Down
2 changes: 1 addition & 1 deletion src/bootstrap/setup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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!(
Expand Down

0 comments on commit 2b70c6a

Please sign in to comment.