mirror of
https://github.com/denoland/deno.git
synced 2025-12-23 08:48:24 +00:00
feat(upgrade): ability to show additional message on upgrade (#31170)
This commit is contained in:
parent
b6f567946b
commit
4bf3510052
1 changed files with 45 additions and 0 deletions
|
|
@ -529,6 +529,12 @@ pub async fn upgrade(
|
|||
return Ok(());
|
||||
};
|
||||
|
||||
let banner_handle = spawn_banner_task(
|
||||
&selected_version_to_upgrade.version_or_hash,
|
||||
selected_version_to_upgrade.release_channel,
|
||||
http_client_provider.get_or_create()?,
|
||||
);
|
||||
|
||||
let download_url = get_download_url(
|
||||
&selected_version_to_upgrade.version_or_hash,
|
||||
requested_version.release_channel(),
|
||||
|
|
@ -605,6 +611,10 @@ pub async fn upgrade(
|
|||
.await;
|
||||
}
|
||||
|
||||
if let Ok(Some(text)) = banner_handle.await {
|
||||
log::info!("\n{}\n", text);
|
||||
}
|
||||
|
||||
drop(temp_dir); // delete the temp dir
|
||||
Ok(())
|
||||
}
|
||||
|
|
@ -881,6 +891,41 @@ fn get_download_url(
|
|||
})
|
||||
}
|
||||
|
||||
fn spawn_banner_task(
|
||||
version: &str,
|
||||
release_channel: ReleaseChannel,
|
||||
client: HttpClient,
|
||||
) -> deno_core::unsync::JoinHandle<Option<String>> {
|
||||
let banner_url = get_banner_url(version, release_channel);
|
||||
deno_core::unsync::spawn(async move {
|
||||
let banner_url = banner_url?;
|
||||
tokio::select! {
|
||||
result = client.download_text(banner_url) => {
|
||||
result.ok()
|
||||
}
|
||||
_ = tokio::time::sleep(Duration::from_secs(5)) => {
|
||||
None
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
fn get_banner_url(
|
||||
version: &str,
|
||||
release_channel: ReleaseChannel,
|
||||
) -> Option<Url> {
|
||||
let download_url = match release_channel {
|
||||
ReleaseChannel::Stable => {
|
||||
format!("{}/v{}/banner.txt", DL_RELEASE_URL, version)
|
||||
}
|
||||
ReleaseChannel::Rc | ReleaseChannel::Lts | ReleaseChannel::Canary => {
|
||||
return None;
|
||||
}
|
||||
};
|
||||
|
||||
Url::parse(&download_url).ok()
|
||||
}
|
||||
|
||||
async fn download_package(
|
||||
client: &HttpClient,
|
||||
download_url: Url,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue