Skip to content

Commit 60818d0

Browse files
committed
feat(config): warn user if auto-install is enabled
1 parent fb715d6 commit 60818d0

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/config.rs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use anyhow::{Context, Result, anyhow, bail};
88
use serde::Deserialize;
99
use thiserror::Error as ThisError;
1010
use tokio_stream::StreamExt;
11-
use tracing::trace;
11+
use tracing::{info, trace, warn};
1212

1313
use crate::dist::AutoInstallMode;
1414
use crate::{
@@ -386,12 +386,26 @@ impl<'a> Cfg<'a> {
386386
}
387387

388388
pub(crate) fn should_auto_install(&self) -> Result<bool> {
389-
if let Ok(mode) = self.process.var("RUSTUP_AUTO_INSTALL") {
389+
let res = if let Ok(mode) = self.process.var("RUSTUP_AUTO_INSTALL") {
390390
Ok(mode != "0")
391391
} else {
392392
self.settings_file
393393
.with(|s| Ok(s.auto_install != Some(AutoInstallMode::Disable)))
394+
}?;
395+
if res
396+
// We also need to suppress this warning if we're deep inside a recursive call.
397+
&& matches!(
398+
self.process.var("RUST_RECURSION_COUNT").as_deref(),
399+
Err(_) | Ok("0"),
400+
)
401+
{
402+
warn!("auto-install is enabled, active toolchain will be installed if absent");
403+
warn!("this behavior is deprecated and will be removed in a future version");
404+
info!(
405+
"you may opt out now with `RUSTUP_AUTO_INSTALL=0` or `rustup set auto-install disable`"
406+
);
394407
}
408+
Ok(res)
395409
}
396410

397411
// Returns a profile, if one exists in the settings file.

0 commit comments

Comments
 (0)