You've already forked AstralRinth
forked from didirus/AstralRinth
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:
@@ -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(loader.stable), 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(loader.stable),
|
||||
loader.version.clone(),
|
||||
Box::new(true),
|
||||
))
|
||||
}
|
||||
} else {
|
||||
loaders.push((
|
||||
Box::new(loader.stable),
|
||||
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_fabric_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,13 @@ pub async fn retrieve_data(
|
||||
)
|
||||
.await?;
|
||||
|
||||
if async move {
|
||||
*skip_upload
|
||||
}.await {
|
||||
return Ok::<(), Error>(())
|
||||
}
|
||||
|
||||
|
||||
let version_path = format!(
|
||||
"fabric/v{}/versions/{}.json",
|
||||
daedalus::modded::CURRENT_FABRIC_FORMAT_VERSION,
|
||||
|
||||
@@ -147,26 +147,35 @@ fn check_env_vars() -> bool {
|
||||
}
|
||||
|
||||
lazy_static::lazy_static! {
|
||||
static ref CLIENT : Bucket = Bucket::new(
|
||||
&dotenvy::var("S3_BUCKET_NAME").unwrap(),
|
||||
if &*dotenvy::var("S3_REGION").unwrap() == "r2" {
|
||||
Region::R2 {
|
||||
account_id: dotenvy::var("S3_URL").unwrap(),
|
||||
}
|
||||
static ref CLIENT : Bucket = {
|
||||
let region = dotenvy::var("S3_REGION").unwrap();
|
||||
let b = Bucket::new(
|
||||
&dotenvy::var("S3_BUCKET_NAME").unwrap(),
|
||||
if &*region == "r2" {
|
||||
Region::R2 {
|
||||
account_id: dotenvy::var("S3_URL").unwrap(),
|
||||
}
|
||||
} else {
|
||||
Region::Custom {
|
||||
region: region.clone(),
|
||||
endpoint: dotenvy::var("S3_URL").unwrap(),
|
||||
}
|
||||
},
|
||||
Credentials::new(
|
||||
Some(&*dotenvy::var("S3_ACCESS_TOKEN").unwrap()),
|
||||
Some(&*dotenvy::var("S3_SECRET").unwrap()),
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
).unwrap(),
|
||||
).unwrap();
|
||||
|
||||
if region == "path-style" {
|
||||
b.with_path_style()
|
||||
} else {
|
||||
Region::Custom {
|
||||
region: dotenvy::var("S3_REGION").unwrap(),
|
||||
endpoint: dotenvy::var("S3_URL").unwrap(),
|
||||
}
|
||||
},
|
||||
Credentials::new(
|
||||
Some(&*dotenvy::var("S3_ACCESS_TOKEN").unwrap()),
|
||||
Some(&*dotenvy::var("S3_SECRET").unwrap()),
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
).unwrap(),
|
||||
).unwrap();
|
||||
b
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
pub async fn upload_file_to_bucket(
|
||||
|
||||
@@ -25,7 +25,8 @@ pub async fn retrieve_data(
|
||||
|
||||
let mut manifest =
|
||||
daedalus::minecraft::fetch_version_manifest(None).await?;
|
||||
let cloned_manifest = Arc::new(Mutex::new(old_manifest.clone().unwrap_or(manifest.clone())));
|
||||
let cloned_manifest =
|
||||
Arc::new(Mutex::new(old_manifest.clone().unwrap_or(manifest.clone())));
|
||||
|
||||
let patches = fetch_library_patches()?;
|
||||
let cloned_patches = Arc::new(&patches);
|
||||
|
||||
@@ -447,7 +447,7 @@ pub async fn fetch_maven_metadata(
|
||||
let parts: Vec<&str> = value.split('-').collect();
|
||||
if parts.len() == 2 {
|
||||
map.entry(parts[0].to_string())
|
||||
.or_insert(Vec::new())
|
||||
.or_default()
|
||||
.push((original, parts[1].to_string()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user