Further improve CLI feedback

This commit is contained in:
Luke D Jones
2021-03-10 16:01:04 +13:00
parent 707b3bcc2d
commit 47432524e1
4 changed files with 25 additions and 12 deletions

View File

@@ -108,7 +108,7 @@ struct BiosCommand {
} }
fn main() -> Result<(), Box<dyn std::error::Error>> { fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut args: Vec<String> = args().skip(1).collect(); let args: Vec<String> = args().skip(1).collect();
let parsed: CLIStart; let parsed: CLIStart;
let missing_argument_k = gumdrop::Error::missing_argument(Opt::Short('k')); let missing_argument_k = gumdrop::Error::missing_argument(Opt::Short('k'));
@@ -337,11 +337,19 @@ fn handle_led_mode(
if !mode.help { if !mode.help {
println!("Missing arg or command\n"); println!("Missing arg or command\n");
} }
println!("{}", mode.self_usage()); println!("{}\n", mode.self_usage());
println!("Commands available");
if let Some(lst) = mode.self_command_list() { let commands: Vec<String> = LedModeCommand::command_list().unwrap().lines().map(|s| s.to_string()).collect();
println!("\n{}", lst); for (_, command) in commands.iter().enumerate().filter(|(mode_num, _)| {
if let Some(modes) = supported.stock_led_modes.as_ref() {
return modes.contains(&(*mode_num as u8))
}
false
}) {
println!("{}", command);
} }
println!("\nHelp can also be requested on modes, e.g: static --help"); println!("\nHelp can also be requested on modes, e.g: static --help");
std::process::exit(1); std::process::exit(1);
} }
@@ -368,14 +376,19 @@ fn handle_profile(
&& cmd.curve.is_none() && cmd.curve.is_none()
&& cmd.max_percentage.is_none() && cmd.max_percentage.is_none()
&& cmd.min_percentage.is_none() && cmd.min_percentage.is_none()
&& cmd.preset.is_none() && cmd.fan_preset.is_none()
&& cmd.profile.is_none() && cmd.profile.is_none()
&& cmd.turbo.is_none() && cmd.turbo.is_none()
{ {
if !cmd.help { if !cmd.help {
println!("Missing arg or command\n"); println!("Missing arg or command\n");
} }
println!("{}", cmd.self_usage()); let usage: Vec<String> = ProfileCommand::usage().lines().map(|s| s.to_string()).collect();
for line in usage.iter().filter(|line| {
!(line.contains("--curve") && !supported.fan_curve_set)
}) {
println!("{}", line);
}
if let Some(lst) = cmd.self_command_list() { if let Some(lst) = cmd.self_command_list() {
println!("\n{}", lst); println!("\n{}", lst);

View File

@@ -264,7 +264,7 @@ impl CtrlFanAndCPU {
if let Some(max_perc) = command.max_percentage { if let Some(max_perc) = command.max_percentage {
profile.max_percentage = max_perc; profile.max_percentage = max_perc;
} }
if let Some(ref preset) = command.preset { if let Some(ref preset) = command.fan_preset {
profile.fan_preset = preset.into(); profile.fan_preset = preset.into();
} }
if let Some(ref curve) = command.curve { if let Some(ref curve) = command.curve {

View File

@@ -1,17 +1,17 @@
[[led_modes]] [[led_modes]]
prod_family = "Zephyrus S" prod_family = "Zephyrus S"
board_names = ["GX502", "GX701", "G531", "GL531", "G532"] board_names = ["GX502", "GX701", "G531", "GL531", "G532"]
led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 255] led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 255]
[[led_modes]] [[led_modes]]
prod_family = "Zephyrus M" prod_family = "Zephyrus M"
board_names = ["GU502GV"] board_names = ["GU502GV"]
led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 255] led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 255]
[[led_modes]] [[led_modes]]
prod_family = "ROG Zephyrus M15" prod_family = "ROG Zephyrus M15"
board_names = ["GU502LW"] board_names = ["GU502LW"]
led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 255] led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 255]
[[led_modes]] [[led_modes]]
prod_family = "ROG Zephyrus M15" prod_family = "ROG Zephyrus M15"
@@ -26,7 +26,7 @@ led_modes = [0, 1, 2, 3, 10, 13]
[[led_modes]] [[led_modes]]
prod_family = "ROG Strix" prod_family = "ROG Strix"
board_names = ["G531GW"] board_names = ["G531GW"]
led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 255] led_modes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 255]
[[led_modes]] [[led_modes]]
prod_family = "ROG Strix" prod_family = "ROG Strix"

View File

@@ -89,7 +89,7 @@ pub struct ProfileCommand {
pub max_percentage: Option<u8>, pub max_percentage: Option<u8>,
#[options(meta = "", help = "<silent, normal, boost>")] #[options(meta = "", help = "<silent, normal, boost>")]
pub preset: Option<FanLevel>, pub fan_preset: Option<FanLevel>,
#[options(meta = "", parse(try_from_str = "parse_fan_curve"), help = "set fan curve")] #[options(meta = "", parse(try_from_str = "parse_fan_curve"), help = "set fan curve")]
pub curve: Option<Curve>, pub curve: Option<Curve>,
#[options(free)] #[options(free)]