Skip to content
This repository was archived by the owner on Feb 16, 2024. It is now read-only.

Commit 85d9e40

Browse files
committed
Implement completion for --log-level
1 parent 6c5a86a commit 85d9e40

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

src/arguments.rs

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::{operator::CliCommandOperator, release::CliCommandRelease, stack::Cli
22
use clap::{ArgEnum, Command, Parser, ValueHint};
33
use clap_complete::{generate, Generator, Shell};
44
use log::LevelFilter;
5-
use std::io;
5+
use std::{io};
66

77
#[derive(Parser)]
88
#[clap(author, version, about)]
@@ -11,8 +11,8 @@ pub struct CliArgs {
1111
pub cmd: CliCommand,
1212

1313
/// Log level. One of error, warn, info, debug or trace
14-
#[clap(short, long, default_value = "info", value_hint = ValueHint::Other)]
15-
pub log_level: LevelFilter,
14+
#[clap(short, long, arg_enum, default_value = "info")]
15+
pub log_level: LogLevel,
1616

1717
/// Namespace where to deploy the products and operators
1818
#[clap(short, long, default_value = "default", value_hint = ValueHint::Other)]
@@ -85,6 +85,27 @@ pub enum OutputType {
8585
Yaml,
8686
}
8787

88+
#[derive(Clone, Parser, Debug, ArgEnum)]
89+
pub enum LogLevel {
90+
Error,
91+
Warn,
92+
Info,
93+
Debug,
94+
Trace,
95+
}
96+
97+
impl From<&LogLevel> for LevelFilter {
98+
fn from(val: &LogLevel) -> Self {
99+
match val {
100+
LogLevel::Error => LevelFilter::Error,
101+
LogLevel::Warn => LevelFilter::Warn,
102+
LogLevel::Info => LevelFilter::Info,
103+
LogLevel::Debug => LevelFilter::Debug,
104+
LogLevel::Trace => LevelFilter::Trace,
105+
}
106+
}
107+
}
108+
88109
#[derive(Parser)]
89110
pub struct CliCommandCompletion {
90111
// Shell to generate the completions for

src/helm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ pub fn handle_common_cli_args(args: &CliArgs) {
4747
args.helm_repo_stackable_dev.clone(),
4848
);
4949

50-
*(LOG_LEVEL.lock().unwrap()) = args.log_level;
50+
*(LOG_LEVEL.lock().unwrap()) = (&args.log_level).into();
5151

5252
let namespace = &args.namespace;
5353
if namespace != "default" {

src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ fn main() {
3737
env_logger::builder()
3838
.format_timestamp(None)
3939
.format_target(false)
40-
.filter_level(args.log_level)
40+
.filter_level((&args.log_level).into())
4141
.init();
4242
helm::handle_common_cli_args(&args);
4343
release::handle_common_cli_args(&args);

0 commit comments

Comments
 (0)