sift-queue 0.8.0

Queue CLI and queue-native task/review substrate
Documentation
use crate::cli::formatters;
use crate::queue::Queue;
use crate::ShowArgs;
use anyhow::Result;
use std::path::PathBuf;

/// Execute the `sq show` command.
pub fn execute(args: &ShowArgs, queue_path: PathBuf) -> Result<i32> {
    let queue = Queue::new(queue_path);

    let id = match &args.id {
        Some(id) => id.as_str(),
        None => {
            eprintln!("Error: Item ID is required");
            return Ok(1);
        }
    };

    let item = match queue.find_with_computed_status(id) {
        Some(item) => item,
        None => {
            eprintln!("Error: Item not found: {}", id);
            return Ok(1);
        }
    };

    if args.json {
        let json = serde_json::to_string_pretty(&item.to_json_value())?;
        println!("{}", json);
    } else {
        formatters::print_item_detail(&item, args.full);
    }

    Ok(0)
}