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>> {
let mut args: Vec<String> = args().skip(1).collect();
let args: Vec<String> = args().skip(1).collect();
let parsed: CLIStart;
let missing_argument_k = gumdrop::Error::missing_argument(Opt::Short('k'));
@@ -337,11 +337,19 @@ fn handle_led_mode(
if !mode.help {
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() {
println!("\n{}", lst);
let commands: Vec<String> = LedModeCommand::command_list().unwrap().lines().map(|s| s.to_string()).collect();
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");
std::process::exit(1);
}
@@ -368,14 +376,19 @@ fn handle_profile(
&& cmd.curve.is_none()
&& cmd.max_percentage.is_none()
&& cmd.min_percentage.is_none()
&& cmd.preset.is_none()
&& cmd.fan_preset.is_none()
&& cmd.profile.is_none()
&& cmd.turbo.is_none()
{
if !cmd.help {
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() {
println!("\n{}", lst);

View File

@@ -264,7 +264,7 @@ impl CtrlFanAndCPU {
if let Some(max_perc) = command.max_percentage {
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();
}
if let Some(ref curve) = command.curve {

View File

@@ -1,17 +1,17 @@
[[led_modes]]
prod_family = "Zephyrus S"
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]]
prod_family = "Zephyrus M"
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]]
prod_family = "ROG Zephyrus M15"
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]]
prod_family = "ROG Zephyrus M15"
@@ -26,7 +26,7 @@ led_modes = [0, 1, 2, 3, 10, 13]
[[led_modes]]
prod_family = "ROG Strix"
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]]
prod_family = "ROG Strix"

View File

@@ -89,7 +89,7 @@ pub struct ProfileCommand {
pub max_percentage: Option<u8>,
#[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")]
pub curve: Option<Curve>,
#[options(free)]