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