Skip to content

Commit 21c1bfa

Browse files
committed
fix(cli/rustup-mode): make rustup default exit with 1 when there's no default
1 parent 330dbc5 commit 21c1bfa

File tree

3 files changed

+12
-13
lines changed

3 files changed

+12
-13
lines changed

src/cli/rustup_mode.rs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -753,15 +753,10 @@ async fn default_(
753753
}
754754
}
755755
} else {
756-
match cfg.get_default()? {
757-
Some(default_toolchain) => {
758-
writeln!(cfg.process.stdout().lock(), "{default_toolchain} (default)")?;
759-
}
760-
None => writeln!(
761-
cfg.process.stdout().lock(),
762-
"no default toolchain is configured"
763-
)?,
764-
}
756+
let default_toolchain = cfg
757+
.get_default()?
758+
.ok_or_else(|| anyhow!("no default toolchain is configured"))?;
759+
writeln!(cfg.process.stdout().lock(), "{default_toolchain} (default)")?;
765760
}
766761

767762
Ok(utils::ExitCode(0))

tests/suite/cli_exact.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ async fn default_custom_not_installed_toolchain() {
578578

579579
#[tokio::test]
580580
async fn default_none() {
581-
let mut cx = CliTestContext::new(Scenario::None).await;
581+
let cx = CliTestContext::new(Scenario::None).await;
582582
cx.config
583583
.expect_stderr_ok(
584584
&["rustup", "default", "none"],
@@ -587,10 +587,10 @@ async fn default_none() {
587587
.await;
588588

589589
cx.config
590-
.expect_ok_ex(
590+
.expect_err_ex(
591591
&["rustup", "default"],
592-
"no default toolchain is configured\n",
593592
"",
593+
"error: no default toolchain is configured\n",
594594
)
595595
.await;
596596

tests/suite/cli_rustup.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2802,7 +2802,11 @@ async fn check_unix_settings_fallback() {
28022802
let cx = CliTestContext::new(Scenario::SimpleV2).await;
28032803
// No default toolchain specified yet
28042804
cx.config
2805-
.expect_stdout_ok(&["rustup", "default"], "no default toolchain is configured")
2805+
.expect_err_ex(
2806+
&["rustup", "default"],
2807+
"",
2808+
"error: no default toolchain is configured\n",
2809+
)
28062810
.await;
28072811

28082812
// Default toolchain specified in fallback settings file

0 commit comments

Comments
 (0)