fix: follow live logs and reconcile duplicate managed mods
Axolotl desktop CI / guardrails (push) Has been cancelled
Axolotl desktop CI / desktop (macos-latest) (push) Has been cancelled
Axolotl desktop CI / desktop (ubuntu-latest) (push) Has been cancelled
Axolotl desktop CI / desktop (windows-latest) (push) Has been cancelled
Axolotl desktop CI / website (push) Has been cancelled
Repository checks / typos (push) Has been cancelled
Repository checks / tombi (push) Has been cancelled
Rust checks / shear (push) Has been cancelled
Sync source to CNB / Sync Git ref (push) Has been cancelled
Sync LobeHub models / sync (push) Has been cancelled
Axolotl desktop CI / guardrails (push) Has been cancelled
Axolotl desktop CI / desktop (macos-latest) (push) Has been cancelled
Axolotl desktop CI / desktop (ubuntu-latest) (push) Has been cancelled
Axolotl desktop CI / desktop (windows-latest) (push) Has been cancelled
Axolotl desktop CI / website (push) Has been cancelled
Repository checks / typos (push) Has been cancelled
Repository checks / tombi (push) Has been cancelled
Rust checks / shear (push) Has been cancelled
Sync source to CNB / Sync Git ref (push) Has been cancelled
Sync LobeHub models / sync (push) Has been cancelled
This commit is contained in:
1 parent
c2bc7c2441
commit
19098f7159
10 files changed
+628
-125
No files matched your search
@@ -426,9 +426,7 @@ pub async fn default_publication() -> crate::Result<Publication> {
|
||||
})
|
||||
}
|
||||
|
||||
pub async fn create(
|
||||
game_dir_root: Option<String>,
|
||||
) -> crate::Result<String> {
|
||||
pub async fn create(game_dir_root: Option<String>) -> crate::Result<String> {
|
||||
let publication = default_publication().await?;
|
||||
let runtime = &publication.manifest.runtime;
|
||||
let state = State::get().await?;
|
||||
@@ -1036,14 +1034,8 @@ async fn synchronize_with_progress(
|
||||
resolved_external.push(resolved.clone());
|
||||
files.push(resolved);
|
||||
}
|
||||
let duplicate_mods = tagged::merge(
|
||||
&root,
|
||||
&cache,
|
||||
&mut files,
|
||||
&mut sources,
|
||||
&tagged_manifest,
|
||||
)
|
||||
.await?;
|
||||
tagged::merge(&root, &cache, &mut files, &mut sources, &tagged_manifest)
|
||||
.await?;
|
||||
validate(&files)?;
|
||||
if let Some(old) = &previous {
|
||||
validate(&old.files)?;
|
||||
@@ -1139,12 +1131,6 @@ async fn synchronize_with_progress(
|
||||
});
|
||||
}
|
||||
}
|
||||
for action in duplicate_mods {
|
||||
preserved.retain(|path| path != &action.path);
|
||||
if !actions.iter().any(|existing| existing.path == action.path) {
|
||||
actions.push(action);
|
||||
}
|
||||
}
|
||||
let mut tagged_downloads = Vec::new();
|
||||
pending_downloads.retain(|_, (file, url, object)| {
|
||||
if tagged_manifest.contains(&file.path) {
|
||||
@@ -1305,6 +1291,21 @@ async fn synchronize_with_progress(
|
||||
)
|
||||
.await?;
|
||||
ensure_session(&auth).await?;
|
||||
let duplicate_mods = tagged::reconcile_staged(
|
||||
&root,
|
||||
&cache,
|
||||
&mut files,
|
||||
&mut sources,
|
||||
&tagged_manifest,
|
||||
&mut actions,
|
||||
)
|
||||
.await?;
|
||||
for action in duplicate_mods {
|
||||
preserved.retain(|path| path != &action.path);
|
||||
if !actions.iter().any(|existing| existing.path == action.path) {
|
||||
actions.push(action);
|
||||
}
|
||||
}
|
||||
if actions.is_empty()
|
||||
&& !runtime_changed
|
||||
&& metadata.instance.install_stage == InstanceInstallStage::Installed
|
||||
|
||||
Reference in new issue
Block a user