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
|
|
|
|
|
|
2021-06-29 22:32:52 -07:00
|
|
|
#![warn(missing_docs, unused_import_braces, missing_debug_implementations)]
|
|
|
|
|
|
2022-02-20 22:20:50 +08:00
|
|
|
static LAUNCHER_WORK_DIR: &'static str = "./launcher";
|
2021-12-15 22:24:08 -07:00
|
|
|
|
2021-12-19 22:48:50 -07:00
|
|
|
mod data;
|
2021-06-29 22:32:52 -07:00
|
|
|
pub mod launcher;
|
2021-11-17 20:34:21 -08:00
|
|
|
pub mod modpack;
|
2021-11-10 21:52:55 -07:00
|
|
|
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),
|
|
|
|
|
|
2021-12-19 22:48:50 -07:00
|
|
|
#[error("Data error: {0}")]
|
|
|
|
|
DaedalusError(#[from] data::DataError),
|
2021-12-15 22:24:08 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub async fn init() -> Result<(), Error> {
|
2022-02-20 22:20:50 +08:00
|
|
|
std::fs::create_dir_all(LAUNCHER_WORK_DIR).expect("Unable to create launcher root directory!");
|
2021-12-19 22:48:50 -07:00
|
|
|
crate::data::Metadata::init().await?;
|
|
|
|
|
crate::data::Settings::init().await?;
|
2021-12-15 22:24:08 -07:00
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
|
}
|