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