Saves the user-level config file. Best-effort. Returns true if the file was saved, false on any error.
(&self)
| 166 | /// Saves the user-level config file. Best-effort. |
| 167 | /// Returns true if the file was saved, false on any error. |
| 168 | pub fn save(&self) -> bool { |
| 169 | let Some(path) = config_path() else { |
| 170 | return false; |
| 171 | }; |
| 172 | if path.exists() { |
| 173 | let Ok(contents) = std::fs::read_to_string(&path) else { |
| 174 | return false; |
| 175 | }; |
| 176 | if toml::from_str::<Self>(&contents).is_err() { |
| 177 | return false; |
| 178 | } |
| 179 | } |
| 180 | if let Some(parent) = path.parent() { |
| 181 | if std::fs::create_dir_all(parent).is_err() { |
| 182 | return false; |
| 183 | } |
| 184 | } |
| 185 | let Ok(contents) = toml::to_string_pretty(self) else { |
| 186 | return false; |
| 187 | }; |
| 188 | std::fs::write(&path, contents).is_ok() |
| 189 | } |
| 190 | |
| 191 | /// Saves only when the user-level config file already exists. |
| 192 | /// |
no test coverage detected