DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/Binary/Build/PostHogPlugin/
Initialize.rs1use crate::{
11 Binary::Build::PostHogPlugin::{CaptureAllowed, CaptureEvent, Client, Constants},
12 dev_log,
13};
14
15pub async fn Fn() {
16 if !CaptureAllowed::Fn() {
17 return;
18 }
19
20 let Options = posthog_rs::ClientOptionsBuilder::default()
21 .api_key(Constants::POSTHOG_API_KEY.to_string())
22 .host(Constants::POSTHOG_HOST.to_string())
23 .build()
24 .expect("PostHog client options");
25
26 let PostHogClient = posthog_rs::client(Options).await;
27
28 let _ = Client::CLIENT.set(PostHogClient);
29
30 dev_log!(
31 "lifecycle",
32 "[PostHog] Initialized (host={}, debug mode)",
33 Constants::POSTHOG_HOST
34 );
35
36 CaptureEvent::Fn(
37 "land:mountain:session:start",
38 Some(vec![
39 ("pid", Box::leak(format!("{}", std::process::id()).into_boxed_str())),
40 ("os", std::env::consts::OS),
41 ("arch", std::env::consts::ARCH),
42 ]),
43 );
44}