1
0
Fork 0
mirror of https://codeberg.org/icewind/haze.git synced 2026-06-04 01:24:09 +02:00

log count

This commit is contained in:
Robin Appelman 2021-03-14 21:17:03 +01:00
commit 794a69f17b
3 changed files with 9 additions and 4 deletions

View file

@ -33,6 +33,7 @@ pub enum HazeArgs {
Clean, Clean,
Logs { Logs {
filter: Option<String>, filter: Option<String>,
count: Option<usize>,
}, },
Open { Open {
filter: Option<String>, filter: Option<String>,
@ -103,7 +104,10 @@ impl HazeArgs {
}), }),
HazeCommand::Db => Ok(HazeArgs::Db { filter }), HazeCommand::Db => Ok(HazeArgs::Db { filter }),
HazeCommand::Clean => Ok(HazeArgs::Clean), HazeCommand::Clean => Ok(HazeArgs::Clean),
HazeCommand::Logs => Ok(HazeArgs::Logs { filter }), HazeCommand::Logs => Ok(HazeArgs::Logs {
filter,
count: args.next().map(|arg| arg.as_ref().parse()).transpose()?,
}),
HazeCommand::Open => Ok(HazeArgs::Open { filter }), HazeCommand::Open => Ok(HazeArgs::Open { filter }),
} }
} }

View file

@ -272,13 +272,14 @@ impl Cloud {
Ok(()) Ok(())
} }
pub async fn logs(&self, docker: &mut Docker) -> Result<Vec<String>> { pub async fn logs(&self, docker: &mut Docker, count: usize) -> Result<Vec<String>> {
let mut logs = Vec::new(); let mut logs = Vec::new();
let mut stream = docker.logs::<String>( let mut stream = docker.logs::<String>(
&self.id, &self.id,
Some(LogsOptions { Some(LogsOptions {
stdout: true, stdout: true,
stderr: true, stderr: true,
tail: format!("{}", count),
..Default::default() ..Default::default()
}), }),
); );

View file

@ -57,9 +57,9 @@ async fn main() -> Result<()> {
let cloud = Cloud::get_by_filter(&mut docker, filter, &config).await?; let cloud = Cloud::get_by_filter(&mut docker, filter, &config).await?;
cloud.destroy(&mut docker).await?; cloud.destroy(&mut docker).await?;
} }
HazeArgs::Logs { filter } => { HazeArgs::Logs { filter, count } => {
let cloud = Cloud::get_by_filter(&mut docker, filter, &config).await?; let cloud = Cloud::get_by_filter(&mut docker, filter, &config).await?;
let logs = cloud.logs(&mut docker).await?; let logs = cloud.logs(&mut docker, count.unwrap_or(20)).await?;
for log in logs { for log in logs {
print!("{}", log); print!("{}", log);
} }