Skip to content

Commit c3aa0a9

Browse files
Merge pull request #5 from Ryex/generate-mojang
Refactor: Split out storage so that is is mostly generic.
2 parents 9dd5582 + 1240a92 commit c3aa0a9

File tree

8 files changed

+1273
-663
lines changed

8 files changed

+1273
-663
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@ meta
1111
# dev envierment
1212
/.helix
1313
/.vscode
14+
15+
# let this be self generated
16+
mcmeta/static/forge/forge-legacyinfo.json

libmcmeta/src/models/forge.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ pub struct ForgeVersionClassifier {
3333
pub stash: Option<String>,
3434
}
3535

36+
#[derive(Deserialize, Serialize, Clone, Debug, Validate)]
3637
pub enum ForgeVersionClassifierExtensions {
3738
Txt,
3839
Zip,
@@ -692,7 +693,7 @@ pub struct ForgeOptional {
692693
}
693694

694695
#[derive(Deserialize, Serialize, Clone, Debug, Validate, Merge, Default)]
695-
pub struct ForgeInstallerProfile {
696+
pub struct ForgeInstallerProfileV1 {
696697
pub install: ForgeInstallerProfileInstallSection,
697698
#[serde(rename = "versionInfo")]
698699
pub version_info: ForgeVersionFile,
@@ -778,6 +779,13 @@ pub struct ForgeInstallerProfileV2 {
778779
server_jar_path: Option<String>,
779780
}
780781

782+
#[derive(Deserialize, Serialize, Clone, Debug, Validate)]
783+
#[serde(untagged)]
784+
pub enum ForgeInstallerProfile {
785+
V1(Box<ForgeInstallerProfileV1>),
786+
V2(Box<ForgeInstallerProfileV2>),
787+
}
788+
781789
#[derive(Deserialize, Serialize, Clone, Debug, Validate, Merge, Default)]
782790
pub struct InstallerInfo {
783791
pub sha1hash: Option<String>,

mcmeta/src/app_config.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use anyhow::Result;
22
use serde::Deserialize;
33

4-
#[derive(Deserialize, Debug)]
4+
#[derive(Deserialize, Debug, Clone)]
55
#[serde(rename_all = "snake_case", tag = "type")]
66
pub enum StorageFormat {
77
Json {
@@ -11,7 +11,7 @@ pub enum StorageFormat {
1111
Database,
1212
}
1313

14-
#[derive(Deserialize, Debug)]
14+
#[derive(Deserialize, Debug, Clone)]
1515
pub struct MetadataConfig {
1616
pub max_parallel_fetch_connections: usize,
1717
pub static_directory: String,
@@ -46,9 +46,9 @@ impl ServerConfig {
4646
.set_default("debug_log.path", "./logs")?
4747
.set_default("debug_log.prefix", "mcmeta.log")?
4848
.set_default("debug_log.level", "debug")?
49-
// optionaly oad config from a file. this is optional though
49+
// optionally add config from a file. this is optional though
5050
.add_source(config::File::from(std::path::Path::new(path)).required(false))
51-
// envierment overrides file
51+
// environment overrides file
5252
.add_source(config::Environment::with_prefix("mcmeta").separator("__"))
5353
.build()?;
5454

mcmeta/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ async fn main() -> Result<()> {
7575

7676
config
7777
.storage_format
78-
.initialize_metadata(&config.metadata)
78+
.update_upstream_metadata(&config.metadata)
7979
.await?;
8080

8181
let raw_mojang_routes = Router::new()

0 commit comments

Comments
 (0)