use std::thread;

use reqwest;
use semver::Version;
use serde::Deserialize;
#[derive(Deserialize, Debug)]
struct Release {
    tag_name: String,
}

pub async fn update() {
    let body = reqwest::get(
        "https://git.racooncity.org/api/v1/repos/mysticmomba/RhythmWorks/releases/latest",
    )
    .await
    .unwrap()
    .text()
    .await
    .unwrap();
    let release_info: Release = serde_json::from_str(&body).unwrap();
    let latest_version = Version::parse(&release_info.tag_name).unwrap();
    let current_version = Version::parse(env!("CARGO_PKG_VERSION")).unwrap();
    if latest_version > current_version {
        println!("Update Available! Please download the latest version");
        println!("URL: https://git.racooncity.org/mysticmomba/RhythmWorks/releases");
        thread::sleep(std::time::Duration::from_secs(10));
        std::process::exit(1);
    }
}
