Skip to content

Commit 438f9dc

Browse files
committed
Cli: Derive Default
So that we can instantiate Cli to a safe default with everything disabled. Signed-off-by: Daniel Schaefer <dhs@frame.work>
1 parent 23a752b commit 438f9dc

File tree

3 files changed

+22
-13
lines changed

3 files changed

+22
-13
lines changed

framework_lib/src/commandline/clap_std.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use clap_num::maybe_hex;
99
use crate::chromium_ec::commands::SetGpuSerialMagic;
1010
use crate::chromium_ec::CrosEcDriverType;
1111
use crate::commandline::{
12-
Cli, ConsoleArg, FpBrightnessArg, HardwareDeviceType, InputDeckModeArg, RebootEcArg,
12+
Cli, ConsoleArg, FpBrightnessArg, HardwareDeviceType, InputDeckModeArg, LogLevel, RebootEcArg,
1313
TabletModeArg,
1414
};
1515

@@ -381,7 +381,7 @@ pub fn parse(args: &[String]) -> Cli {
381381
};
382382

383383
Cli {
384-
verbosity: args.verbosity.log_level_filter(),
384+
verbosity: LogLevel(args.verbosity.log_level_filter()),
385385
versions: args.versions,
386386
version: args.version,
387387
features: args.features,

framework_lib/src/commandline/mod.rs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,13 +134,22 @@ impl From<InputDeckModeArg> for DeckStateMode {
134134
}
135135
}
136136

137+
#[derive(Debug)]
138+
pub struct LogLevel(log::LevelFilter);
139+
140+
impl Default for LogLevel {
141+
fn default() -> Self {
142+
LogLevel(log::LevelFilter::Error)
143+
}
144+
}
145+
137146
/// Shadows `clap_std::ClapCli` with extras for UEFI
138147
///
139148
/// The UEFI commandline currently doesn't use clap, so we need to shadow the struct.
140149
/// Also it has extra options.
141-
#[derive(Debug)]
150+
#[derive(Debug, Default)]
142151
pub struct Cli {
143-
pub verbosity: log::LevelFilter,
152+
pub verbosity: LogLevel,
144153
pub versions: bool,
145154
pub version: bool,
146155
pub features: bool,
@@ -815,7 +824,7 @@ fn compare_version(device: Option<HardwareDeviceType>, version: String, ec: &Cro
815824
pub fn run_with_args(args: &Cli, _allupdate: bool) -> i32 {
816825
#[cfg(feature = "uefi")]
817826
{
818-
log::set_max_level(args.verbosity);
827+
log::set_max_level(args.verbosity.0);
819828
}
820829
#[cfg(not(feature = "uefi"))]
821830
{
@@ -824,7 +833,7 @@ pub fn run_with_args(args: &Cli, _allupdate: bool) -> i32 {
824833
// .filter("FRAMEWORK_COMPUTER_LOG")
825834
// .write_style("FRAMEWORK_COMPUTER_LOG_STYLE");
826835

827-
let level = args.verbosity.as_str();
836+
let level = args.verbosity.0.as_str();
828837
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or(level))
829838
.format_target(false)
830839
.format_timestamp(None)

framework_lib/src/commandline/uefi.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use uefi::Handle;
1010

1111
use crate::chromium_ec::commands::SetGpuSerialMagic;
1212
use crate::chromium_ec::{CrosEcDriverType, HardwareDeviceType};
13-
use crate::commandline::Cli;
13+
use crate::commandline::{Cli, LogLevel};
1414

1515
use super::{ConsoleArg, FpBrightnessArg, InputDeckModeArg, RebootEcArg, TabletModeArg};
1616

@@ -26,7 +26,7 @@ pub fn get_args(bs: &BootServices, image_handle: Handle) -> Vec<String> {
2626

2727
pub fn parse(args: &[String]) -> Cli {
2828
let mut cli = Cli {
29-
verbosity: log::LevelFilter::Error,
29+
verbosity: LogLevel(log::LevelFilter::Error),
3030
paginate: false,
3131
versions: false,
3232
version: false,
@@ -103,15 +103,15 @@ pub fn parse(args: &[String]) -> Cli {
103103

104104
for (i, arg) in args.iter().enumerate() {
105105
if arg == "-q" {
106-
cli.verbosity = log::LevelFilter::Off;
106+
cli.verbosity = LogLevel(log::LevelFilter::Off);
107107
} else if arg == "-v" {
108-
cli.verbosity = log::LevelFilter::Warn;
108+
cli.verbosity = LogLevel(log::LevelFilter::Warn);
109109
} else if arg == "-vv" {
110-
cli.verbosity = log::LevelFilter::Info;
110+
cli.verbosity = LogLevel(log::LevelFilter::Info);
111111
} else if arg == "-vvv" {
112-
cli.verbosity = log::LevelFilter::Debug;
112+
cli.verbosity = LogLevel(log::LevelFilter::Debug);
113113
} else if arg == "-vvvv" {
114-
cli.verbosity = log::LevelFilter::Trace;
114+
cli.verbosity = LogLevel(log::LevelFilter::Trace);
115115
} else if arg == "--versions" {
116116
cli.versions = true;
117117
found_an_option = true;

0 commit comments

Comments
 (0)