mirror of
https://github.com/djibux/BoilR.git
synced 2026-09-01 05:53:41 +02:00
47 lines
1.5 KiB
Rust
47 lines
1.5 KiB
Rust
use std::path::Path;
|
|
|
|
use crate::{platforms::get_platforms, settings::save_settings};
|
|
|
|
pub fn migrate_config() {
|
|
let version = &crate::settings::Settings::new()
|
|
.map(|s| s.config_version)
|
|
.unwrap_or_default();
|
|
|
|
let mut save_version = false;
|
|
if version.is_none() {
|
|
//Migration from 0 to 1
|
|
let old_path = &Path::new("config.toml");
|
|
if old_path.exists() {
|
|
println!("Migrating from configuration version 0 to version 1");
|
|
let new_path = crate::config::get_config_file();
|
|
println!("Your configuration file will be moved to {new_path:?}");
|
|
let _ = std::fs::copy(old_path, new_path);
|
|
let _ = std::fs::remove_file(old_path);
|
|
}
|
|
|
|
let old_path = &Path::new(".thumbnails");
|
|
if old_path.exists() {
|
|
//thumbnails are just cache can be removed
|
|
let _ = std::fs::remove_dir_all(old_path);
|
|
}
|
|
|
|
let old_path = &Path::new("cache.json");
|
|
if old_path.exists() {
|
|
let new_path = crate::config::get_cache_file();
|
|
let _ = std::fs::copy(old_path, new_path);
|
|
let _ = std::fs::remove_file(old_path);
|
|
}
|
|
save_version = true;
|
|
}
|
|
|
|
if save_version {
|
|
if let Ok(mut settings) = crate::settings::Settings::new() {
|
|
settings.config_version = Some(1);
|
|
let platforms = get_platforms();
|
|
if let Err(err) = save_settings(&settings, &platforms){
|
|
eprintln!("Failed to load settings {err:?}");
|
|
}
|
|
}
|
|
}
|
|
}
|