Skip to content

Commit 6ca0869

Browse files
committed
Track msvc installer download progress
1 parent da50202 commit 6ca0869

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/cli/self_update/windows.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use std::cell::RefCell;
12
use std::env::{consts::EXE_SUFFIX, split_paths};
23
use std::ffi::{OsStr, OsString};
34
use std::fmt;
@@ -10,6 +11,7 @@ use anyhow::{anyhow, Context, Result};
1011
use super::super::errors::*;
1112
use super::common;
1213
use super::{install_bins, InstallOpts};
14+
use crate::cli::download_tracker::DownloadTracker;
1315
use crate::dist::dist::TargetTriple;
1416
use crate::process;
1517
use crate::utils::utils;
@@ -106,7 +108,15 @@ pub(crate) fn try_install_msvc() -> Result<()> {
106108
.context("error creating temp directory")?;
107109

108110
let visual_studio = tempdir.path().join("vs_setup.exe");
109-
utils::download_file(&visual_studio_url, &visual_studio, None, &|_| ())?;
111+
let download_tracker = RefCell::new(DownloadTracker::new().with_display_progress(true));
112+
download_tracker.borrow_mut().download_finished();
113+
utils::download_file(&visual_studio_url, &visual_studio, None, &move |n| {
114+
download_tracker
115+
.borrow_mut()
116+
.handle_notification(&crate::Notification::Install(
117+
crate::dist::Notification::Utils(n),
118+
));
119+
})?;
110120

111121
// Run the installer. Arguments are documented at:
112122
// https://docs.microsoft.com/en-us/visualstudio/install/use-command-line-parameters-to-install-visual-studio

0 commit comments

Comments
 (0)