@@ -17,7 +17,7 @@ use std::process::Stdio;
1717use tokio:: fs:: File ;
1818use tokio:: io:: AsyncWriteExt ;
1919use tokio:: { fs, process:: Command } ;
20- use tracing:: info;
20+ use tracing:: { info, warn } ;
2121use yansi:: Paint ;
2222
2323use super :: { InstallResult , PostDownloadVersionType } ;
@@ -136,13 +136,12 @@ pub async fn start(
136136 } else {
137137 let downloaded_checksum =
138138 download_version ( client, version, root, & config. config , true ) . await ?;
139+ let archive_path = root. join ( format ! (
140+ "{}.{}" ,
141+ downloaded_archive. file_name, downloaded_archive. file_format
142+ ) ) ;
139143
140144 if let PostDownloadVersionType :: Standard ( downloaded_checksum) = downloaded_checksum {
141- let archive_path = root. join ( format ! (
142- "{}.{}" ,
143- downloaded_archive. file_name, downloaded_archive. file_format
144- ) ) ;
145-
146145 let checksum_path = root. join ( format ! (
147146 "{}.{}" ,
148147 downloaded_checksum. file_name, downloaded_checksum. file_format
@@ -163,6 +162,9 @@ pub async fn start(
163162 info ! ( "Checksum matched!" ) ;
164163 tokio:: fs:: remove_file ( checksum_path) . await ?;
165164 unarchive:: start ( downloaded_archive) . await ?
165+ } else if let PostDownloadVersionType :: None = downloaded_checksum {
166+ warn ! ( "No checksum provided, skipping checksum verification" ) ;
167+ unarchive:: start ( downloaded_archive) . await ?
166168 }
167169 }
168170 }
@@ -409,6 +411,9 @@ async fn download_version(
409411 semver : version. semver . clone ( ) ,
410412 } ) )
411413 } else {
414+ if get_sha256sum {
415+ return Ok ( PostDownloadVersionType :: None ) ;
416+ }
412417 let error_text = response. text ( ) . await ?;
413418 if error_text. contains ( "Not Found" ) {
414419 Err ( anyhow ! (
0 commit comments