From aa84f21fde4954775f2f7b442a5a45eb442315e7 Mon Sep 17 00:00:00 2001 From: Jai A Date: Wed, 5 Apr 2023 12:02:00 -0700 Subject: [PATCH 1/3] Fix forge syncing not working --- .env | 2 +- Dockerfile | 22 ++++++++++++++++++---- daedalus/Cargo.toml | 2 +- daedalus_client/Cargo.toml | 2 +- daedalus_client/src/fabric.rs | 3 ++- daedalus_client/src/forge.rs | 11 +++++++---- daedalus_client/src/main.rs | 2 +- 7 files changed, 31 insertions(+), 13 deletions(-) diff --git a/.env b/.env index c7298bc74..bbcfb5cbf 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ -RUST_LOG=info,error +RUST_LOG=info BASE_URL=https://modrinth-cdn-staging.nyc3.digitaloceanspaces.com diff --git a/Dockerfile b/Dockerfile index eae1ea34b..a2a341da0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,21 @@ -FROM rust:1.68.2 - -COPY ./ ./ +FROM rust:1.68.2 as build +ENV PKG_CONFIG_ALLOW_CROSS=1 +WORKDIR /usr/src/daedalus +COPY . . RUN cargo build --release -CMD ["./target/release/daedalus_client"] \ No newline at end of file + +FROM debian:bullseye-slim + +RUN apt-get update \ + && apt-get install -y --no-install-recommends ca-certificates \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +RUN update-ca-certificates + +COPY --from=build /usr/src/daedalus/target/release/daedalus_client /daedalus/daedalus_client +WORKDIR /daedalus_client + +CMD /daedalus/daedalus_client diff --git a/daedalus/Cargo.toml b/daedalus/Cargo.toml index ada94ed8c..09c54758c 100644 --- a/daedalus/Cargo.toml +++ b/daedalus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "daedalus" -version = "0.1.18" +version = "0.1.19" authors = ["Jai A "] edition = "2018" license = "MIT" diff --git a/daedalus_client/Cargo.toml b/daedalus_client/Cargo.toml index 389c45a64..8b531712c 100644 --- a/daedalus_client/Cargo.toml +++ b/daedalus_client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "daedalus_client" -version = "0.1.18" +version = "0.1.19" authors = ["Jai A "] edition = "2018" diff --git a/daedalus_client/src/fabric.rs b/daedalus_client/src/fabric.rs index e3625dabc..6aa8f91fe 100644 --- a/daedalus_client/src/fabric.rs +++ b/daedalus_client/src/fabric.rs @@ -82,6 +82,7 @@ pub async fn retrieve_data( visited_artifacts_mutex.lock().await; if visited_assets.contains(&lib.name) { + lib.name = lib.name.replace(DUMMY_GAME_VERSION, DUMMY_REPLACE_STRING); lib.url = Some(format_url("maven/")); return Ok(lib); @@ -92,7 +93,6 @@ pub async fn retrieve_data( if lib.name.contains(DUMMY_GAME_VERSION) { lib.name = lib.name.replace(DUMMY_GAME_VERSION, DUMMY_REPLACE_STRING); - lib.url = Some(format_url("maven/")); futures::future::try_join_all(list.game.clone().into_iter().map(|game_version| async { let semaphore = semaphore.clone(); let uploaded_files_mutex = uploaded_files_mutex.clone(); @@ -130,6 +130,7 @@ pub async fn retrieve_data( Ok::<(), Error>(()) })).await?; + lib.url = Some(format_url("maven/")); return Ok(lib); } diff --git a/daedalus_client/src/forge.rs b/daedalus_client/src/forge.rs index 7cbe84790..5335f20db 100644 --- a/daedalus_client/src/forge.rs +++ b/daedalus_client/src/forge.rs @@ -93,7 +93,7 @@ pub async fn retrieve_data( if !loaders.is_empty() { version_futures.push(async { - let loaders_versions = Vec::new(); + let mut loaders_versions = Vec::new(); { let loaders_futures = loaders.into_iter().map(|(loader_version_full, version)| async { @@ -464,8 +464,9 @@ pub async fn retrieve_data( while versions.peek().is_some() { let now = Instant::now(); - let chunk: Vec<_> = versions.by_ref().take(1).collect(); - futures::future::try_join_all(chunk).await?; + let chunk: Vec<_> = versions.by_ref().take(10).collect(); + let res = futures::future::try_join_all(chunk).await?; + loaders_versions.extend(res.into_iter().flatten()); chunk_index += 1; @@ -493,7 +494,7 @@ pub async fn retrieve_data( while versions.peek().is_some() { let now = Instant::now(); - let chunk: Vec<_> = versions.by_ref().take(10).collect(); + let chunk: Vec<_> = versions.by_ref().take(1).collect(); futures::future::try_join_all(chunk).await?; chunk_index += 1; @@ -544,6 +545,8 @@ pub async fn retrieve_data( } } + println!("{}", serde_json::to_string(&versions).unwrap()); + upload_file_to_bucket( format!( "forge/v{}/manifest.json", diff --git a/daedalus_client/src/main.rs b/daedalus_client/src/main.rs index 56b524bfb..000f003a0 100644 --- a/daedalus_client/src/main.rs +++ b/daedalus_client/src/main.rs @@ -44,7 +44,7 @@ async fn main() { return; } - let mut timer = tokio::time::interval(Duration::from_secs(30 * 60)); + let mut timer = tokio::time::interval(Duration::from_secs(60 * 60)); let semaphore = Arc::new(Semaphore::new(50)); loop { From bf5a25a96f0da836b20e16f1998cc9eb7bebc3f9 Mon Sep 17 00:00:00 2001 From: Jai A Date: Wed, 5 Apr 2023 12:02:47 -0700 Subject: [PATCH 2/3] fmt + clippy --- daedalus_client/src/forge.rs | 4 +--- daedalus_client/src/main.rs | 6 +----- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/daedalus_client/src/forge.rs b/daedalus_client/src/forge.rs index 5335f20db..7415cc651 100644 --- a/daedalus_client/src/forge.rs +++ b/daedalus_client/src/forge.rs @@ -16,7 +16,7 @@ use serde::{Deserialize, Serialize}; use std::collections::HashMap; use std::io::Read; use std::sync::Arc; -use std::time::{Duration, Instant}; +use std::time::Instant; use tokio::sync::{Mutex, Semaphore}; lazy_static! { @@ -545,8 +545,6 @@ pub async fn retrieve_data( } } - println!("{}", serde_json::to_string(&versions).unwrap()); - upload_file_to_bucket( format!( "forge/v{}/manifest.json", diff --git a/daedalus_client/src/main.rs b/daedalus_client/src/main.rs index 000f003a0..92fee4cd7 100644 --- a/daedalus_client/src/main.rs +++ b/daedalus_client/src/main.rs @@ -189,11 +189,7 @@ pub async fn upload_file_to_bucket( } pub fn format_url(path: &str) -> String { - format!( - "{}/{}", - &*dotenvy::var("BASE_URL").unwrap(), - path - ) + format!("{}/{}", &*dotenvy::var("BASE_URL").unwrap(), path) } pub async fn download_file( From 0c2e9137a2cb45ac9cb422d822e8c9eb8d676486 Mon Sep 17 00:00:00 2001 From: Jai A Date: Wed, 5 Apr 2023 12:39:16 -0700 Subject: [PATCH 3/3] Update id merging --- daedalus/src/modded.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daedalus/src/modded.rs b/daedalus/src/modded.rs index 2494ded4d..2519719c8 100644 --- a/daedalus/src/modded.rs +++ b/daedalus/src/modded.rs @@ -131,7 +131,7 @@ pub fn merge_partial_version( asset_index: merge.asset_index, assets: merge.assets, downloads: merge.downloads, - id: merge.id, + id: partial.id.replace(DUMMY_REPLACE_STRING, &merge_id), java_version: merge.java_version, libraries: partial .libraries