Mountain/IPC/WindServiceHandlers/Utilities/UserdataDir/
Ensure.rs1#![allow(unused_variables, dead_code, unused_imports)]
2
3use crate::dev_log;
7
8pub fn Fn() {
9 if super::INITIALIZED.swap(true, std::sync::atomic::Ordering::Relaxed) {
10 return;
11 }
12
13 let Base = super::Get::Fn();
14
15 let Dirs = [
16 format!("{}/User", Base),
17 format!("{}/User/globalStorage", Base),
18 format!("{}/User/profiles/__default__profile__", Base),
19 format!("{}/User/snippets", Base),
20 format!("{}/User/prompts", Base),
21 format!("{}/User/cacheHome", Base),
22 format!("{}/logs", Base),
23 format!("{}/User/workspaceStorage", Base),
24 format!(
25 "{}/CachedConfigurations/defaults/__default__profile__-configurationDefaultsOverrides",
26 Base
27 ),
28 ];
29
30 for Dir in &Dirs {
31 if let Err(E) = std::fs::create_dir_all(Dir) {
32 dev_log!("lifecycle", "Failed to create userdata dir {}: {}", Dir, E);
33 }
34 }
35
36 let DefaultFiles = [
37 (format!("{}/User/settings.json", Base), "{}"),
38 (format!("{}/User/keybindings.json", Base), "[]"),
39 (format!("{}/User/tasks.json", Base), "{}"),
40 (format!("{}/User/extensions.json", Base), "[]"),
41 (format!("{}/User/mcp.json", Base), "{}"),
42 ];
43
44 for (FilePath, DefaultContent) in &DefaultFiles {
45 if !std::path::Path::new(FilePath).exists() {
46 if let Err(E) = std::fs::write(FilePath, DefaultContent) {
47 dev_log!("lifecycle", "Failed to create default file {}: {}", FilePath, E);
48 }
49 }
50 }
51
52 dev_log!("lifecycle", "userdata dirs initialized at: {}/User/", Base);
53}