use clap::Args;
use crate::cli::Ctx;
use crate::output::{emit_json, emit_text_event, OutputMode};
use super::{parse_fields, parse_indexes};
#[derive(Debug, Args)]
pub struct GetArgs {
pub event_id: String,
#[arg(long)]
pub index: Option<String>,
#[arg(long)]
pub fields: Option<String>,
}
pub async fn run(ctx: Ctx, args: GetArgs) -> anyhow::Result<()> {
let ev = ctx
.client
.logs_get(&args.event_id, parse_indexes(args.index))
.await?;
match ctx.output {
OutputMode::Json | OutputMode::Table | OutputMode::Ndjson => emit_json(&ev)?,
OutputMode::Text => emit_text_event(&ev, &parse_fields(args.fields)),
}
Ok(())
}