mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2024-11-16 11:42:21 +08:00
feat: add put_profiles cmd
This commit is contained in:
parent
1c3ae5c4bc
commit
0c23845970
|
@ -84,6 +84,7 @@ pub fn get_profiles(lock: State<'_, ProfileLock>) -> Option<ProfilesConfig> {
|
|||
}
|
||||
|
||||
#[tauri::command]
|
||||
/// update the profile config
|
||||
pub fn set_profiles(
|
||||
current: usize,
|
||||
profile: ProfileItem,
|
||||
|
@ -131,3 +132,30 @@ pub fn set_profiles(
|
|||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
/// change to target profile
|
||||
pub fn put_profiles(current: usize, lock: State<'_, ProfileLock>) -> Result<(), String> {
|
||||
match lock.0.lock() {
|
||||
Ok(_) => {}
|
||||
Err(_) => return Err(format!("can not get file locked")),
|
||||
};
|
||||
|
||||
let mut profiles = read_profiles();
|
||||
|
||||
let items_len = match &profiles.items {
|
||||
Some(p) => p.len(),
|
||||
None => 0,
|
||||
};
|
||||
|
||||
if current >= items_len {
|
||||
Err(format!(
|
||||
"failed to change profile to the index `{}`",
|
||||
current
|
||||
))
|
||||
} else {
|
||||
profiles.current = Some(current as u32);
|
||||
save_profiles(&profiles);
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -61,7 +61,8 @@ fn main() -> std::io::Result<()> {
|
|||
cmd::get_clash_info,
|
||||
cmd::import_profile,
|
||||
cmd::get_profiles,
|
||||
cmd::set_profiles
|
||||
cmd::set_profiles,
|
||||
cmd::put_profiles,
|
||||
])
|
||||
.build(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
|
|
Loading…
Reference in New Issue
Block a user