Added secure boot status to sysinfo.
This commit is contained in:
@@ -95,3 +95,37 @@ pub fn get_gpus_list() -> Vec<GpuInfo> {
|
|||||||
|
|
||||||
res
|
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