summaryrefslogtreecommitdiffstats
path: root/src/launcher/version.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/launcher/version.rs')
-rw-r--r--src/launcher/version.rs22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/launcher/version.rs b/src/launcher/version.rs
index 328f0a9..49525b0 100644
--- a/src/launcher/version.rs
+++ b/src/launcher/version.rs
@@ -40,14 +40,9 @@ impl RemoteVersionList {
async fn download_version(&self, ver: &VersionManifestVersion, path: &Path) -> Result<CompleteVersion, Box<dyn Error>> {
// ensure parent directory exists
info!("Downloading version {}.", ver.id);
- match tokio::fs::create_dir_all(path.parent().expect("version .json has no parent (impossible)")).await {
- Err(e) => {
- if e.kind() != ErrorKind::AlreadyExists {
- warn!("failed to create {} parent dirs: {e}", path.display());
- return Err(e.into());
- }
- },
- Ok(()) => {}
+ if let Err(e) = tokio::fs::create_dir_all(path.parent().expect("version .json has no parent (impossible)")).await {
+ warn!("failed to create {} parent dirs: {e}", path.display());
+ return Err(e.into());
}
// download it
@@ -254,7 +249,7 @@ impl VersionList {
Self::create_dir_for(home).await?;
let remote = RemoteVersionList::new().await?;
- let local = LocalVersionList::load_versions(home.as_ref(), |s| remote.versions.contains_key(s)).await?;
+ let local = LocalVersionList::load_versions(home, |s| remote.versions.contains_key(s)).await?;
Ok(VersionList {
remote: Some(remote),
@@ -280,16 +275,15 @@ impl VersionList {
}
pub fn get_version_lazy(&self, id: &str) -> VersionResult {
- self.remote.as_ref()
- .map_or(None, |r| r.versions.get(id).map(VersionResult::from))
+ self.remote.as_ref().and_then(|r| r.versions.get(id).map(VersionResult::from))
.or_else(|| self.local.versions.get(id).map(VersionResult::from))
.unwrap_or(VersionResult::None)
}
pub fn get_profile_version_id<'v>(&self, ver: &'v ProfileVersion) -> Option<Cow<'v, str>> {
match ver {
- ProfileVersion::LatestRelease => self.remote.as_ref().map_or(None, |r| Some(Cow::Owned(r.latest.release.clone()))),
- ProfileVersion::LatestSnapshot => self.remote.as_ref().map_or(None, |r| Some(Cow::Owned(r.latest.snapshot.clone()))),
+ ProfileVersion::LatestRelease => self.remote.as_ref().map(|r| Cow::Owned(r.latest.release.clone())),
+ ProfileVersion::LatestSnapshot => self.remote.as_ref().map(|r| Cow::Owned(r.latest.snapshot.clone())),
ProfileVersion::Specific(ver) => Some(Cow::Borrowed(ver))
}
}
@@ -346,7 +340,7 @@ impl VersionList {
let inherited_ver = match self.get_version_lazy(inherit.as_str()) {
VersionResult::Complete(v) => Cow::Borrowed(v),
VersionResult::Remote(v) =>
- Cow::Owned(self.load_remote_version(v).await.map_err(|e| VersionResolveError::Unknown(e))?),
+ Cow::Owned(self.load_remote_version(v).await.map_err(VersionResolveError::Unknown)?),
VersionResult::None => {
warn!("Cannot resolve version {}, it inherits an unknown version {inherit}", ver.id);
return Err(VersionResolveError::MissingVersion(inherit));