Improve deployments and resets #50
2 changed files with 32 additions and 0 deletions
|
@ -8,6 +8,7 @@
|
||||||
- dtmt: implement deploying built bundles
|
- dtmt: implement deploying built bundles
|
||||||
- dtmm: indicate when a deployment is necessary
|
- dtmm: indicate when a deployment is necessary
|
||||||
- dtmm: check for Steam game update before deployment
|
- dtmm: check for Steam game update before deployment
|
||||||
|
- dtmm: remove unused bundles from previous deployment
|
||||||
|
|
||||||
=== Fixed
|
=== Fixed
|
||||||
|
|
||||||
|
|
|
@ -589,6 +589,37 @@ pub(crate) async fn deploy_mods(state: State) -> Result<()> {
|
||||||
.wrap_err("failed to patch boot bundle")?;
|
.wrap_err("failed to patch boot bundle")?;
|
||||||
bundles.append(&mut more_bundles);
|
bundles.append(&mut more_bundles);
|
||||||
|
|
||||||
|
if let Some(info) = &deployment_info {
|
||||||
|
let bundle_dir = Arc::new(state.game_dir.join("bundle"));
|
||||||
|
let tasks = info
|
||||||
|
.bundles
|
||||||
|
.iter()
|
||||||
|
.cloned()
|
||||||
|
.map(|v| (v, bundle_dir.clone()))
|
||||||
|
.filter_map(|(file_name, bundle_dir)| {
|
||||||
|
let contains = bundles.iter().any(|b2| {
|
||||||
|
let name = b2.name().to_murmur64().to_string();
|
||||||
|
file_name == name
|
||||||
|
});
|
||||||
|
|
||||||
|
if !contains {
|
||||||
|
let task = async move {
|
||||||
|
let path = bundle_dir.join(file_name);
|
||||||
|
if let Err(err) = fs::remove_file(&path).await.wrap_err_with(|| {
|
||||||
|
format!("failed to remove unused bundle '{}'", path.display())
|
||||||
|
}) {
|
||||||
|
tracing::error!("{:?}", err);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Some(task)
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
futures::future::join_all(tasks).await;
|
||||||
|
}
|
||||||
|
|
||||||
tracing::info!("Patch game settings");
|
tracing::info!("Patch game settings");
|
||||||
patch_game_settings(state.clone())
|
patch_game_settings(state.clone())
|
||||||
.await
|
.await
|
||||||
|
|
Loading…
Add table
Reference in a new issue