diff --git a/src/main.rs b/src/main.rs index 00054bbb..d07e9216 100644 --- a/src/main.rs +++ b/src/main.rs @@ -73,7 +73,7 @@ fn run() -> Result<(), Error> { #[cfg(feature = "self-update")] { - if !opt.dry_run { + if !opt.dry_run && !env::var("TOPGRADE_NO_SELF_UPGRADE").is_ok() { if let Err(e) = self_update::self_update() { print_warning(format!("Self update error: {}", e)); if let Some(cause) = e.cause() { diff --git a/src/self_update.rs b/src/self_update.rs index 32108966..8b461246 100644 --- a/src/self_update.rs +++ b/src/self_update.rs @@ -44,6 +44,7 @@ pub fn self_update() -> Result<(), Error> { print_warning("Respawning..."); let err = Command::new(current_exe.context(ErrorKind::SelfUpdate)?) .args(env::args().skip(1)) + .env("TOPGRADE_NO_SELF_UPGRADE", "") .exec(); Err(err).context(ErrorKind::SelfUpdate)? }