Files
Modrinth-plus/theseus/src/lib.rs

54 lines
1.1 KiB
Rust
Raw Normal View History

2021-07-09 20:05:04 -07:00
//! # Theseus
//!
//! Theseus is a library which provides utilities for launching minecraft, creating Modrinth mod packs,
//! and launching Modrinth mod packs
#![warn(unused_import_braces, missing_debug_implementations)]
2021-06-29 22:32:52 -07:00
2022-02-20 22:20:50 +08:00
static LAUNCHER_WORK_DIR: &'static str = "./launcher";
2021-12-15 22:24:08 -07:00
pub mod data;
2021-06-29 22:32:52 -07:00
pub mod launcher;
2021-11-17 20:34:21 -08:00
pub mod modpack;
mod util;
2021-12-15 22:24:08 -07:00
#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error("Launcher error: {0}")]
LauncherError(#[from] launcher::LauncherError),
#[error("Modpack error: {0}")]
ModpackError(#[from] modpack::ModpackError),
#[error("Data error: {0}")]
DaedalusError(#[from] data::DataError),
2021-12-15 22:24:08 -07:00
}
pub async fn init() -> Result<(), Error> {
std::fs::create_dir_all(LAUNCHER_WORK_DIR)
.expect("Unable to create launcher root directory!");
use crate::data::*;
Metadata::init().await?;
Settings::init().await?;
tokio::try_join! {
launcher::init_download_semaphore(),
Profiles::init(),
}?;
Ok(())
}
pub async fn save() -> Result<(), Error> {
use crate::data::*;
tokio::try_join! {
Settings::save(),
Profiles::save(),
}?;
2021-12-15 22:24:08 -07:00
Ok(())
}