sift_queue/cli/commands/
show.rs1use crate::cli::formatters;
2use crate::queue::Queue;
3use crate::ShowArgs;
4use anyhow::Result;
5use std::path::PathBuf;
6
7pub fn execute(args: &ShowArgs, queue_path: PathBuf) -> Result<i32> {
9 let queue = Queue::new(queue_path);
10
11 let id = match &args.id {
12 Some(id) => id.as_str(),
13 None => {
14 eprintln!("Error: Item ID is required");
15 return Ok(1);
16 }
17 };
18
19 let item = match queue.find(id) {
20 Some(item) => item,
21 None => {
22 eprintln!("Error: Item not found: {}", id);
23 return Ok(1);
24 }
25 };
26
27 if args.json {
28 let json = serde_json::to_string_pretty(&item.to_json_value())?;
29 println!("{}", json);
30 } else {
31 formatters::print_item_detail(&item);
32 }
33
34 Ok(0)
35}