http_client: Fix GitHub downloads failing if the destination path exists (#51548) (cherry-pick to preview) (#51556)

zed-zippy[bot] and Lukas Wirth created

Cherry-pick of #51548 to preview

----
cc
https://github.com/zed-industries/zed/pull/45428#issuecomment-4060334728

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Co-authored-by: Lukas Wirth <lukas@zed.dev>

Change summary

crates/http_client/src/github_download.rs | 1 +
1 file changed, 1 insertion(+)

Detailed changes

crates/http_client/src/github_download.rs 🔗

@@ -155,6 +155,7 @@ async fn cleanup_staging_path(staging_path: &Path, asset_kind: AssetKind) {
 }
 
 async fn finalize_download(staging_path: &Path, destination_path: &Path) -> Result<()> {
+    _ = async_fs::remove_dir_all(destination_path).await;
     async_fs::rename(staging_path, destination_path)
         .await
         .with_context(|| format!("renaming {staging_path:?} to {destination_path:?}"))?;