use cobble_core::minecraft::models::{VersionData, VersionManifest};
use cobble_core::minecraft::{build_launch_command, LaunchOptions};
use std::env::temp_dir;
use tracing_subscriber::FmtSubscriber;
#[tokio::main]
async fn main() {
FmtSubscriber::builder()
.with_env_filter("info,cobble_core=debug")
.init();
let version_manifest = VersionManifest::fetch().await.unwrap();
let version_summary = version_manifest
.versions
.get(&version_manifest.latest.release)
.unwrap();
let version_data = VersionData::fetch(&version_summary.url).await.unwrap();
let options = LaunchOptions::default();
let mut libraries_path = temp_dir();
libraries_path.push("cobble-core/libraries");
let mut natives_path = temp_dir();
natives_path.push("cobble-core/natives");
let mut assets_path = temp_dir();
assets_path.push("cobble-core/assets");
let mut log_configs_path = temp_dir();
log_configs_path.push("cobble-core/assets/log_configs");
let mut minecraft_path = temp_dir();
minecraft_path.push("cobble-core/.minecraft");
let mut command = build_launch_command(
&version_data,
&options,
minecraft_path,
libraries_path,
assets_path,
natives_path,
log_configs_path,
);
command.spawn().unwrap().wait().unwrap();
}