|
| 1 | +use log::debug; |
| 2 | +use log::{error, info, warn}; |
1 | 3 | use tauri::{self, Manager};
|
| 4 | + |
| 5 | +use tauri_plugin_store::with_store; |
| 6 | + |
2 | 7 | use tauri_plugin_window_state::{AppHandleExt, StateFlags, WindowExt};
|
3 | 8 | use whoami::username;
|
4 | 9 |
|
5 |
| -use log::info; |
6 |
| - |
7 | 10 | use crate::modules::m_dnsquery;
|
8 | 11 | use crate::modules::rest_client;
|
9 | 12 |
|
@@ -120,3 +123,48 @@ pub async fn handle_load_window_state<R: tauri::Runtime>(
|
120 | 123 |
|
121 | 124 | Ok(())
|
122 | 125 | }
|
| 126 | + |
| 127 | +pub fn handle_debug<R: tauri::Runtime>( |
| 128 | + app: tauri::AppHandle<R>, |
| 129 | +) -> Result<log::LevelFilter, String> { |
| 130 | + // read the Store file |
| 131 | + let stores = app.state::<tauri_plugin_store::StoreCollection<R>>(); |
| 132 | + let path = std::path::PathBuf::from(".app-settings.etvr"); |
| 133 | + // match the store value to a LogFilter |
| 134 | + let mut debug_state: String = String::new(); |
| 135 | + with_store(app.clone(), stores, path, |store| { |
| 136 | + let settings = store.get("settings"); |
| 137 | + debug!("Settings: {:?}", settings); |
| 138 | + if let Some(json) = settings { |
| 139 | + let _serde_json = serde_json::from_value::<serde_json::Value>(json.clone()); |
| 140 | + debug!("Serde JSON: {:?}", _serde_json); |
| 141 | + let serde_json_result = match _serde_json { |
| 142 | + Ok(serde_json) => serde_json, |
| 143 | + Err(err) => { |
| 144 | + error!("Error configuring JSON config file: {}", err); |
| 145 | + return Err(tauri_plugin_store::Error::Json(err)); |
| 146 | + } |
| 147 | + }; |
| 148 | + let temp = &serde_json_result["debugMode"]; |
| 149 | + debug!("Debug: {:?}", temp); |
| 150 | + debug_state = serde_json::from_value::<String>(temp.clone()).unwrap(); |
| 151 | + } else { |
| 152 | + debug_state = serde_json::json!({}).to_string(); |
| 153 | + } |
| 154 | + info!("Debug state: {}", debug_state); |
| 155 | + Ok(()) |
| 156 | + }) |
| 157 | + .expect("Failed to get store"); |
| 158 | + // set the log level |
| 159 | + let log_level = match debug_state.as_str() { |
| 160 | + "off" => log::LevelFilter::Off, |
| 161 | + "error" => log::LevelFilter::Error, |
| 162 | + "warn" => log::LevelFilter::Warn, |
| 163 | + "info" => log::LevelFilter::Info, |
| 164 | + "debug" => log::LevelFilter::Debug, |
| 165 | + "trace" => log::LevelFilter::Trace, |
| 166 | + _ => log::LevelFilter::Info, |
| 167 | + }; |
| 168 | + // return the result |
| 169 | + Ok(log_level) |
| 170 | +} |
0 commit comments