Fix quilt + fabric intermediary syncing issues (#13)

* Fix quilt + fabric intermediary syncing issues

* fix comp

* Fix random versions not working/updating meta
This commit is contained in:
Geometrically
2023-10-21 13:09:21 -07:00
committed by GitHub
parent 57b1932b5e
commit b1ca2cc2b6
7 changed files with 559 additions and 147 deletions

View File

@@ -31,8 +31,25 @@ pub async fn retrieve_data(
{
let mut loaders = loaders_mutex.write().await;
for loader in &list.loader {
loaders.push((Box::new(false), loader.version.clone()))
for (index, loader) in list.loader.iter().enumerate() {
if versions.iter().any(|x| {
x.id == DUMMY_REPLACE_STRING
&& x.loaders.iter().any(|x| x.id == loader.version)
}) {
if index == 0 {
loaders.push((
Box::new(false),
loader.version.clone(),
Box::new(true),
))
}
} else {
loaders.push((
Box::new(false),
loader.version.clone(),
Box::new(false),
))
}
}
list.loader
@@ -46,16 +63,7 @@ pub async fn retrieve_data(
let loader_versions = futures::future::try_join_all(
loaders_mutex.read().await.clone().into_iter().map(
|(stable, loader)| async {
{
if versions.iter().any(|x| {
x.id == DUMMY_REPLACE_STRING
&& x.loaders.iter().any(|x| x.id == loader)
}) {
return Ok(None);
}
}
|(stable, loader, skip_upload)| async {
let version = fetch_quilt_version(
DUMMY_GAME_VERSION,
&loader,
@@ -63,8 +71,8 @@ pub async fn retrieve_data(
)
.await?;
Ok::<Option<(Box<bool>, String, PartialVersionInfo)>, Error>(
Some((stable, loader, version)),
Ok::<(Box<bool>, String, PartialVersionInfo, Box<bool>), Error>(
(stable, loader, version, skip_upload),
)
},
),
@@ -73,8 +81,8 @@ pub async fn retrieve_data(
let visited_artifacts_mutex = Arc::new(Mutex::new(Vec::new()));
futures::future::try_join_all(loader_versions.into_iter()
.flatten().map(
|(stable, loader, version)| async {
.map(
|(stable, loader, version, skip_upload)| async {
let libs = futures::future::try_join_all(
version.libraries.into_iter().map(|mut lib| async {
{
@@ -167,6 +175,12 @@ pub async fn retrieve_data(
)
.await?;
if async move {
*skip_upload
}.await {
return Ok::<(), Error>(())
}
let version_path = format!(
"quilt/v{}/versions/{}.json",
daedalus::modded::CURRENT_QUILT_FORMAT_VERSION,