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/brotoskyj/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/brotoskyj/RhythmWorks/releases"); thread::sleep(std::time::Duration::from_secs(10)); std::process::exit(1); } }