use std::path::{Path, PathBuf};
use std::sync::LazyLock;
use std::{env, path};
use anyhow::{anyhow, Result};
use galaxyui::{AppContext, SingletonEntity};
use crate::system::SystemInfo;
use crate::util::path::{file_exists_and_is_executable, resolve_executable};
const KASPERSKY_PROCESS_NAME: &str = "avp";
const PWSH_EXE: &str = "pwsh.exe";
const POWERSHELL_EXE: &str = "powershell.exe";
const WSL_EXE: &str = "wsl.exe";
static POWERSHELL_7_PATH: LazyLock