actually enable zram during migration (#2483)

actually enable zram during mifration
This commit is contained in:
Aiden McClelland
2023-10-27 17:34:02 -06:00
committed by GitHub
parent 182a095420
commit 765b542264

View File

@@ -61,43 +61,46 @@ impl VersionT for Version {
} }
} }
} }
db.mutate(|v| { let prev_zram = db
v.as_server_info_mut().as_zram_mut().ser(&true)?; .mutate(|v| {
for (_, pde) in v.as_package_data_mut().as_entries_mut()? { for (_, pde) in v.as_package_data_mut().as_entries_mut()? {
for (dependency, info) in pde for (dependency, info) in pde
.as_installed_mut() .as_installed_mut()
.map(|i| i.as_dependency_info_mut().as_entries_mut()) .map(|i| i.as_dependency_info_mut().as_entries_mut())
.transpose()? .transpose()?
.into_iter() .into_iter()
.flatten() .flatten()
{
if let Some(url) = url_replacements.get(&dependency) {
info.as_icon_mut().ser(url)?;
} else {
info.as_icon_mut().ser(&DataUrl::from_slice(
"image/png",
include_bytes!("../install/package-icon.png"),
))?;
}
let manifest = <&mut Value>::from(&mut *info)
.as_object_mut()
.and_then(|o| o.remove("manifest"));
if let Some(title) = manifest
.as_ref()
.and_then(|m| m.as_object())
.and_then(|m| m.get("title"))
.and_then(|t| t.as_str())
.map(|s| s.to_owned())
{ {
info.as_title_mut().ser(&title)?; if let Some(url) = url_replacements.get(&dependency) {
} else { info.as_icon_mut().ser(url)?;
info.as_title_mut().ser(&dependency.to_string())?; } else {
info.as_icon_mut().ser(&DataUrl::from_slice(
"image/png",
include_bytes!("../install/package-icon.png"),
))?;
}
let manifest = <&mut Value>::from(&mut *info)
.as_object_mut()
.and_then(|o| o.remove("manifest"));
if let Some(title) = manifest
.as_ref()
.and_then(|m| m.as_object())
.and_then(|m| m.get("title"))
.and_then(|t| t.as_str())
.map(|s| s.to_owned())
{
info.as_title_mut().ser(&title)?;
} else {
info.as_title_mut().ser(&dependency.to_string())?;
}
} }
} }
} v.as_server_info_mut().as_zram_mut().replace(&true)
Ok(()) })
}) .await?;
.await?; if !prev_zram {
crate::system::enable_zram().await?;
}
Ok(()) Ok(())
} }
async fn down(&self, _db: PatchDb, _secrets: &PgPool) -> Result<(), Error> { async fn down(&self, _db: PatchDb, _secrets: &PgPool) -> Result<(), Error> {