mid 5.0.1

Creating a Machine ID hash for MacOS/Windows/Linux/iOS
Documentation
#![cfg(target_os = "windows")]

use crate::errors::MIDError;
use crate::utils::run_shell_command;

pub(crate) fn get_mid_result() -> Result<String, MIDError> {
    let combined_output = run_shell_command(
        "powershell",
        [
            "-WindowStyle",
            "Hidden",
            "-command",
            r#"
            $csproduct = Get-WmiObject Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID;
            $bios = Get-WmiObject Win32_BIOS | Select-Object -ExpandProperty SerialNumber;
            $baseboard = Get-WmiObject Win32_BaseBoard | Select-Object -ExpandProperty SerialNumber;
            $cpu = Get-WmiObject Win32_Processor | Select-Object -ExpandProperty ProcessorId;
            "$csproduct|$bios|$baseboard|$cpu"
            "#,
        ],
    )
    .unwrap_or(String::new());

    if combined_output.is_empty() {
        return Err(MIDError::ResultMidError);
    }

    Ok(combined_output
        .trim()
        .trim_start_matches('|')
        .trim_end_matches('|')
        .to_lowercase())
}