Added secure boot status to sysinfo.
This commit is contained in:
@@ -95,3 +95,37 @@ pub fn get_gpus_list() -> Vec<GpuInfo> {
|
||||
|
||||
res
|
||||
}
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Clone, Deserialize)]
|
||||
pub struct SecureBootStatus {
|
||||
pub installed: bool,
|
||||
pub guid: String,
|
||||
pub setup_mode: bool,
|
||||
pub secure_boot: bool,
|
||||
pub vendors: Vec<String>,
|
||||
pub firmware_quirks: Vec<String>,
|
||||
}
|
||||
|
||||
pub fn get_secure_boot_status() -> Result<SecureBootStatus, String> {
|
||||
use std::process::Command;
|
||||
|
||||
//sbctl --json status
|
||||
match Command::new("sbctl").args(["--json", "status"]).output() {
|
||||
Ok(cmd_output) => {
|
||||
if cmd_output.status.success() {
|
||||
match serde_json::from_slice(&cmd_output.stdout) {
|
||||
Ok(res) => Ok(res),
|
||||
Err(ex) => Err(ex.to_string()),
|
||||
}
|
||||
} else {
|
||||
Err(format!(
|
||||
"Error getting disk devices list: {}",
|
||||
String::from_utf8(cmd_output.stderr).unwrap_or("UNKNOWN".into())
|
||||
))
|
||||
}
|
||||
}
|
||||
Err(ex) => Err(ex.to_string()),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user