use burncloud_auto_update::{AutoUpdater, UpdateConfig};
fn main() -> Result<(), Box<dyn std::error::Error>> {
env_logger::init();
let config = UpdateConfig {
current_version: "0.1.0".to_string(),
github_owner: "burncloud".to_string(),
github_repo: "burncloud".to_string(),
bin_name: "burncloud".to_string(),
..UpdateConfig::default()
};
let updater = AutoUpdater::new(config);
println!("=== Example 1: Basic Update Check ===");
match updater.sync_check_for_updates() {
Ok(has_update) => {
if has_update {
println!("✅ Update available!");
} else {
println!("✅ Already up to date");
}
}
Err(e) => println!("❌ Check failed: {}", e),
}
println!("\n=== Example 2: Get Release Information ===");
match updater.get_latest_release_info() {
Ok(Some((tag, name))) => {
println!("Latest release:");
println!(" Tag: {}", tag);
println!(" Name: {}", name);
}
Ok(None) => println!("No releases found"),
Err(e) => println!("❌ Failed to get release info: {}", e),
}
println!("\n=== Example 3: Smart Version Comparison ===");
match updater.needs_update() {
Ok(needs_update) => {
if needs_update {
println!("✅ Newer version available (using semver comparison)");
} else {
println!("✅ Current version is up to date");
}
}
Err(e) => println!("❌ Version check failed: {}", e),
}
println!("\n=== Example 4: Manual Download Links ===");
let (github_url, gitee_url) = updater.get_download_links();
println!("GitHub releases: {}", github_url);
println!("Gitee releases: {}", gitee_url);
Ok(())
}