Using secure boot status to determin its awailability for installation.
This commit is contained in:
Generated
+2
@@ -1804,6 +1804,8 @@ dependencies = [
|
|||||||
"log",
|
"log",
|
||||||
"rand 0.10.1",
|
"rand 0.10.1",
|
||||||
"rust-i18n",
|
"rust-i18n",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
"time-format",
|
"time-format",
|
||||||
"toml 1.1.2+spec-1.1.0",
|
"toml 1.1.2+spec-1.1.0",
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ iced = { version = "0.14", default-features = false, features = ["crisp", "linux
|
|||||||
iced_moving_picture = "0"
|
iced_moving_picture = "0"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
rust-i18n = "3"
|
rust-i18n = "3"
|
||||||
|
serde = { version = "1", features = ["derive"] }
|
||||||
|
serde_json = "1"
|
||||||
time-format = "1.2"
|
time-format = "1.2"
|
||||||
toml = "1"
|
toml = "1"
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,10 @@ impl StageResult {
|
|||||||
self.add_val(val_name, ConfigValue::Bool(v))
|
self.add_val(val_name, ConfigValue::Bool(v))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn add_val_u64(self, val_name: &str, v: u64) -> Self {
|
||||||
|
self.add_val(val_name, ConfigValue::U64(v))
|
||||||
|
}
|
||||||
|
|
||||||
pub fn get_val(&self, val_name: &str) -> Option<ConfigValue> {
|
pub fn get_val(&self, val_name: &str) -> Option<ConfigValue> {
|
||||||
let v = self
|
let v = self
|
||||||
.config
|
.config
|
||||||
|
|||||||
+31
-12
@@ -82,6 +82,7 @@ pub struct PartitionStage {
|
|||||||
swap_mode: Option<SwapMode>,
|
swap_mode: Option<SwapMode>,
|
||||||
use_zram: bool,
|
use_zram: bool,
|
||||||
secure_boot: bool,
|
secure_boot: bool,
|
||||||
|
secure_boot_in_setup_mode: bool,
|
||||||
custom_swap_size_mb: u32,
|
custom_swap_size_mb: u32,
|
||||||
custom_swap_size_str: String,
|
custom_swap_size_str: String,
|
||||||
selected_disk_parts: Option<Vec<(String, u16, Color)>>,
|
selected_disk_parts: Option<Vec<(String, u16, Color)>>,
|
||||||
@@ -116,6 +117,14 @@ impl PartitionStage {
|
|||||||
|
|
||||||
let min_disk_size: KiraSize = KiraSize::new_mb(min_disk_size_mb.try_into().unwrap_or(8192));
|
let min_disk_size: KiraSize = KiraSize::new_mb(min_disk_size_mb.try_into().unwrap_or(8192));
|
||||||
|
|
||||||
|
|
||||||
|
let sec_boot_setup = match kira_sysinfo::get_secure_boot_status() {
|
||||||
|
Ok(sb_status) => sb_status.setup_mode,
|
||||||
|
Err(ex) => {
|
||||||
|
log::error!("Unable to get secure boot status! {}", ex);
|
||||||
|
false
|
||||||
|
}
|
||||||
|
};
|
||||||
match maybe_dev_list {
|
match maybe_dev_list {
|
||||||
Ok(dev_list) => {
|
Ok(dev_list) => {
|
||||||
let acepted_dev: Vec<BlkDev> = dev_list
|
let acepted_dev: Vec<BlkDev> = dev_list
|
||||||
@@ -143,6 +152,7 @@ impl PartitionStage {
|
|||||||
swap_mode: Some(SwapMode::SwapNoHibernate),
|
swap_mode: Some(SwapMode::SwapNoHibernate),
|
||||||
use_zram: true,
|
use_zram: true,
|
||||||
secure_boot: false,
|
secure_boot: false,
|
||||||
|
secure_boot_in_setup_mode: sec_boot_setup,
|
||||||
custom_swap_size_mb: 1024,
|
custom_swap_size_mb: 1024,
|
||||||
custom_swap_size_str: "1024MB".into(),
|
custom_swap_size_str: "1024MB".into(),
|
||||||
selected_disk_parts: None,
|
selected_disk_parts: None,
|
||||||
@@ -205,14 +215,14 @@ impl PartitionStage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn gen_result(&self) -> StageResult {
|
fn gen_result(&self) -> StageResult {
|
||||||
|
let swap_size: KiraSize = self.get_swap_size();
|
||||||
|
let dev_name = self
|
||||||
|
.device
|
||||||
|
.clone()
|
||||||
|
.expect("Device should be selected!")
|
||||||
|
.name;
|
||||||
StageResult::new("partition")
|
StageResult::new("partition")
|
||||||
.add_val_string(
|
.add_val_string("device", dev_name)
|
||||||
"device",
|
|
||||||
self.device
|
|
||||||
.as_ref()
|
|
||||||
.and_then(|v| Some(v.name.clone()))
|
|
||||||
.unwrap_or_else(|| "NONE".to_string()),
|
|
||||||
)
|
|
||||||
.add_val_string(
|
.add_val_string(
|
||||||
"swap_mode",
|
"swap_mode",
|
||||||
self.swap_mode
|
self.swap_mode
|
||||||
@@ -220,7 +230,8 @@ impl PartitionStage {
|
|||||||
.unwrap_or(SwapMode::NoSwap)
|
.unwrap_or(SwapMode::NoSwap)
|
||||||
.to_string(),
|
.to_string(),
|
||||||
)
|
)
|
||||||
.add_val_bool("zram", self.use_zram)
|
.add_val_u64("swap_size_mb", swap_size.mb())
|
||||||
|
.add_val_bool("use_zram", self.use_zram)
|
||||||
.add_val_bool("secure_boot", self.secure_boot)
|
.add_val_bool("secure_boot", self.secure_boot)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -320,7 +331,11 @@ impl PartitionStage {
|
|||||||
let dev_parts_content = widget::column![dev_parts_text, dev_parts_content];
|
let dev_parts_content = widget::column![dev_parts_text, dev_parts_content];
|
||||||
|
|
||||||
let back_button = widget::button(widget::text(t!("button.back"))).on_press(Message::Back);
|
let back_button = widget::button(widget::text(t!("button.back"))).on_press(Message::Back);
|
||||||
let next_button = widget::button(widget::text(t!("button.next"))).on_press(Message::Next);
|
let next_button = if self.device.is_some() {
|
||||||
|
widget::button(widget::text(t!("button.next"))).on_press(Message::Next)
|
||||||
|
} else {
|
||||||
|
widget::button(widget::text(t!("button.next")))
|
||||||
|
};
|
||||||
|
|
||||||
let selected_dev_text = match self.selected_disk_parts {
|
let selected_dev_text = match self.selected_disk_parts {
|
||||||
Some(_) => widget::text(t!("partition.current_dev_layout")),
|
Some(_) => widget::text(t!("partition.current_dev_layout")),
|
||||||
@@ -329,6 +344,12 @@ impl PartitionStage {
|
|||||||
let selected_dev_content = kira_color_bar::color_bar(self.selected_disk_parts.clone(), 64);
|
let selected_dev_content = kira_color_bar::color_bar(self.selected_disk_parts.clone(), 64);
|
||||||
let selected_dev_content = widget::column![selected_dev_text, selected_dev_content];
|
let selected_dev_content = widget::column![selected_dev_text, selected_dev_content];
|
||||||
|
|
||||||
|
let use_sec_boot_checkbox = if self.secure_boot_in_setup_mode {
|
||||||
|
widget::checkbox(self.secure_boot).label(t!("partition.use_secure_boot"))
|
||||||
|
.on_toggle(Message::ToggleSecureBoot)
|
||||||
|
}
|
||||||
|
else {widget::checkbox(self.secure_boot).label(t!("partition.use_secure_boot"))};
|
||||||
|
|
||||||
widget::column![
|
widget::column![
|
||||||
widget::container(
|
widget::container(
|
||||||
widget::column![
|
widget::column![
|
||||||
@@ -354,9 +375,7 @@ impl PartitionStage {
|
|||||||
.label(t!("partition.use_zram"))
|
.label(t!("partition.use_zram"))
|
||||||
.on_toggle(Message::ToggleZram),
|
.on_toggle(Message::ToggleZram),
|
||||||
widget::rule::horizontal(2),
|
widget::rule::horizontal(2),
|
||||||
widget::checkbox(self.secure_boot)
|
use_sec_boot_checkbox,
|
||||||
.label(t!("partition.use_secure_boot"))
|
|
||||||
.on_toggle(Message::ToggleSecureBoot),
|
|
||||||
widget::rule::horizontal(2),
|
widget::rule::horizontal(2),
|
||||||
selected_dev_content,
|
selected_dev_content,
|
||||||
dev_parts_content,
|
dev_parts_content,
|
||||||
|
|||||||
Reference in New Issue
Block a user