Skip to main content

sift_queue/cli/commands/
rm.rs

1use crate::queue::Queue;
2use crate::RmArgs;
3use anyhow::Result;
4use std::path::PathBuf;
5
6/// Execute the `sq rm` command.
7pub fn execute(args: &RmArgs, queue_path: PathBuf) -> Result<i32> {
8    let queue = Queue::new(queue_path);
9
10    let id = match &args.id {
11        Some(ref id) => id.as_str(),
12        None => {
13            eprintln!("Error: Item ID is required");
14            return Ok(1);
15        }
16    };
17
18    match queue.remove(id)? {
19        Some(removed) => {
20            println!("{}", removed.id);
21            eprintln!("Removed item {}", removed.id);
22            Ok(0)
23        }
24        None => {
25            eprintln!("Error: Item not found: {}", id);
26            Ok(1)
27        }
28    }
29}