java/updater/src/main.rs

61 lines
1.7 KiB
Rust
Raw Normal View History

2022-11-29 02:21:44 -05:00
use std::collections::BTreeMap;
2021-12-17 00:17:40 -05:00
2022-11-29 02:21:44 -05:00
use api::OutputReleases;
2021-12-17 00:17:40 -05:00
use color_eyre::{
2022-11-29 02:21:44 -05:00
eyre::{Context, Result},
2021-12-17 00:17:40 -05:00
};
2022-11-29 02:21:44 -05:00
use crate::api::AdoptiumAPI;
2021-12-23 13:11:49 -05:00
2022-11-29 02:21:44 -05:00
/// API Abstraction
pub mod api;
2021-12-17 00:17:40 -05:00
2021-12-23 13:11:49 -05:00
#[async_std::main]
async fn main() -> Result<()> {
color_eyre::install()?;
2022-11-29 02:21:44 -05:00
let mut output: BTreeMap<String, BTreeMap<String, OutputReleases>> = BTreeMap::new();
// Create the api instances
let adoptium = AdoptiumAPI::adoptium().context("Creating api")?;
let semeru = AdoptiumAPI::semeru().context("Creating api")?;
// Fill in x86_64 first
{
let x86_64 = output.entry("x86_64-linux".to_string()).or_default();
x86_64.insert(
"temurin".to_string(),
adoptium
.get_all("x64")
.await
.context("Failed getting x86_64 adopt releases")?,
);
x86_64.insert(
"semeru".to_string(),
semeru
.get_all("x64")
.await
.context("Failed getting x86_64 adopt releases")?,
);
}
// Then aarch64
{
let aarch64 = output.entry("aarch64-linux".to_string()).or_default();
aarch64.insert(
"temurin".to_string(),
adoptium
.get_all("x64")
.await
.context("Failed getting aarch64 adopt releases")?,
);
aarch64.insert(
"semeru".to_string(),
semeru
.get_all("x64")
.await
.context("Failed getting aarch64 adopt releases")?,
);
}
let output = serde_json::to_string_pretty(&output).context("Failed to serialize output")?;
println!("{output}");
2021-12-23 13:11:49 -05:00
Ok(())
2021-12-17 00:17:40 -05:00
}