1use crate::model::UserKey;
2use dirs::home_dir;
3use std::fs;
4
5const CONFIG_FILE_NAME: &str = "rfy_config.json";
6
7pub fn get_user_key() -> Result<UserKey, Box<dyn std::error::Error + 'static>> {
8 match home_dir() {
9 Some(mut p) => {
10 p.push(CONFIG_FILE_NAME);
11 let res: String = String::from_utf8_lossy(&fs::read(p)?).parse()?;
12 let parsed_struct: UserKey = serde_json::from_str(&res).unwrap_or_default();
13
14 Ok(parsed_struct)
15 }
16 None => Ok(UserKey::default()),
17 }
18}
19
20pub fn set_user_key(app_kv: Vec<String>) {
21 let app_key = app_kv.get(0).unwrap().clone();
22 let app_secure = app_kv.get(1).unwrap().clone();
23 if let Some(mut p) = home_dir() {
24 let s = UserKey {
25 app_key,
26 app_secure,
27 };
28 let json = serde_json::to_string(&s).unwrap();
29 p.push(CONFIG_FILE_NAME);
30 fs::write(p, json).unwrap();
31 println!("设置成功, app_key: {}, app_secure: {}", s.app_key, s.app_secure);
32 }
33}