Provide better errors when packages aren't found.

This commit is contained in:
KtorZ 2023-01-18 16:34:26 +01:00
parent 6e64bb72e6
commit b475d6a6a4
No known key found for this signature in database
GPG Key ID: 33173CB6F77F4277
3 changed files with 11 additions and 4 deletions

View File

@ -78,13 +78,19 @@ impl<'a> Downloader<'a> {
.get(url) .get(url)
.header("User-Agent", "aiken-lang") .header("User-Agent", "aiken-lang")
.send() .send()
.await?
.bytes()
.await?; .await?;
if response.status().as_u16() >= 400 {
return Err(Error::UnknownPackageVersion {
package: package.clone(),
});
}
let bytes = response.bytes().await?;
// let PackageSource::Github { url } = &package.source; // let PackageSource::Github { url } = &package.source;
tokio::fs::write(&zipball_path, response).await?; tokio::fs::write(&zipball_path, bytes).await?;
Ok(true) Ok(true)
} }

View File

@ -323,7 +323,7 @@ impl Diagnostic for Error {
Error::Http(_) => None, Error::Http(_) => None,
Error::ZipExtract(_) => None, Error::ZipExtract(_) => None,
Error::JoinError(_) => None, Error::JoinError(_) => None,
Error::UnknownPackageVersion{..} => None, Error::UnknownPackageVersion{..} => Some(Box::new("Perhaps, double-check the package repository and version?")),
} }
} }

View File

@ -37,6 +37,7 @@ pub fn default_aiken_cache() -> PathBuf {
.join("aiken") .join("aiken")
} }
#[derive(Debug)]
pub struct CacheKey { pub struct CacheKey {
key: String, key: String,
} }