mirror of
https://codeberg.org/icewind/haze.git
synced 2026-06-03 17:14:08 +02:00
add follow option to log command
This commit is contained in:
parent
a9083843e6
commit
1f438e8e4f
3 changed files with 37 additions and 14 deletions
29
src/args.rs
29
src/args.rs
|
|
@ -36,6 +36,7 @@ pub enum HazeArgs {
|
|||
Clean,
|
||||
Logs {
|
||||
filter: Option<String>,
|
||||
follow: bool,
|
||||
service: Option<LogService>,
|
||||
count: Option<usize>,
|
||||
},
|
||||
|
|
@ -168,15 +169,13 @@ impl HazeArgs {
|
|||
HazeCommand::Clean => Ok(HazeArgs::Clean),
|
||||
HazeCommand::Logs => {
|
||||
let mut args = args.peekable();
|
||||
let follow = args.next_if(|arg| arg.as_ref() == "-f").is_some();
|
||||
let service = args
|
||||
.peek()
|
||||
.map(|s| s.as_ref())
|
||||
.and_then(LogService::from_type);
|
||||
if service.is_some() {
|
||||
let _ = args.next();
|
||||
}
|
||||
.next_if(|arg| LogService::from_type(arg.as_ref()).is_some())
|
||||
.and_then(|arg| LogService::from_type(arg.as_ref()));
|
||||
Ok(HazeArgs::Logs {
|
||||
filter,
|
||||
follow,
|
||||
service,
|
||||
count: args
|
||||
.next()
|
||||
|
|
@ -312,4 +311,22 @@ fn test_arg_parse() {
|
|||
args: vec!["foo".into(), "bar".into()]
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(vec!["haze", "logs", "-f", "smb"].into_iter()).unwrap(),
|
||||
HazeArgs::Logs {
|
||||
filter: None,
|
||||
follow: true,
|
||||
service: Some(LogService::from_type("smb").unwrap()),
|
||||
count: None,
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
HazeArgs::parse(vec!["haze", "asdasd", "logs", "smb", "123"].into_iter()).unwrap(),
|
||||
HazeArgs::Logs {
|
||||
filter: Some("asdasd".to_string()),
|
||||
follow: false,
|
||||
service: Some(LogService::from_type("smb").unwrap()),
|
||||
count: Some(123),
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue