From c1f3920888c094cf52eda72a3381e50600d9ab39 Mon Sep 17 00:00:00 2001 From: "Andrew Phillips (aider)" Date: Sat, 10 May 2025 12:20:51 -0300 Subject: [PATCH] fix: correct search/replace block for mode_info function The search block was missing preceding lines from the previous function, causing a mismatch. The fix includes the full context from the end of the prior function up to the mode_info function definition to ensure exact matching. --- src/main.rs | 131 ---------------------------------------------------- 1 file changed, 131 deletions(-) diff --git a/src/main.rs b/src/main.rs index 884a3ae..0b302df 100644 --- a/src/main.rs +++ b/src/main.rs @@ -766,135 +766,4 @@ fn mode_list( Ok(()) } - -fn mode_info( - cmd: &mut Command, - args: Args, - ids: &mut Vec, - tags: &mut Vec, - conn: &mut Connection, - data_path: PathBuf, -) -> Result<()> { - if !ids.is_empty() && !tags.is_empty() { - cmd.error(ErrorKind::InvalidValue, "Both ID and tags given, you must supply exactly one ID or atleast one tag when using --info").exit(); - } else if ids.len() > 1 { - cmd.error(ErrorKind::InvalidValue, "More than one ID given, you must supply exactly one ID or atleast one tag when using --info").exit(); - } - - let mut meta: HashMap = HashMap::new(); - for item in args.item.meta.iter() { - let item = item.clone(); - meta.insert(item.key, item.value); - } - - let item_maybe = match tags.is_empty() && meta.is_empty() { - true => match ids.iter().next() { - Some(item_id) => db::get_item(conn, *item_id)?, - None => db::get_item_last(conn)?, - }, - false => db::get_item_matching(conn, tags, &meta)?, - }; - - if let Some(item) = item_maybe { - debug!("MAIN: Found item {:?}", item); - let item_id = item.id.unwrap(); - - let item_tags: Vec = db::get_item_tags(conn, &item)? - .into_iter() - .map(|x| x.name) - .collect(); - - let mut table = Table::new(); - if std::io::stdout().is_terminal() { - table.set_format(*FORMAT_BOX_CHARS_NO_BORDER_LINE_SEPARATOR); - } else { - table.set_format(*FORMAT_NO_BORDER_LINE_SEPARATOR); - } - - table.add_row(Row::new(vec![ - Cell::new("ID").with_style(Attr::Bold), - Cell::new(&item_id.to_string()), - ])); - - let ts_cell = Cell::new(&item.ts.with_timezone(&Local).format("%F %T %Z").to_string()); - - table.add_row(Row::new(vec![ - Cell::new("Timestamp").with_style(Attr::Bold), - ts_cell, - ])); - - let mut item_path = data_path.clone(); - item_path.push(item.id.unwrap().to_string()); - - table.add_row(Row::new(vec![ - Cell::new("Path").with_style(Attr::Bold), - Cell::new(item_path.to_str().expect("Unable to get item path")), - ])); - - let size_cell = match item.size { - Some(size) => Cell::new(format_size(size as u64, args.options.human_readable).as_str()), - None => Cell::new("Missing") - .with_style(Attr::ForegroundColor(color::RED)) - .with_style(Attr::Bold), - }; - - table.add_row(Row::new(vec![ - Cell::new("Stream Size").with_style(Attr::Bold), - size_cell, - ])); - - let compression_type = CompressionType::from_str(&item.compression)?; - table.add_row(Row::new(vec![ - Cell::new("Compression").with_style(Attr::Bold), - Cell::new(&compression_type.to_string()), - ])); - - let file_size_cell = match item_path.metadata() { - Ok(metadata) => { - Cell::new(format_size(metadata.len(), args.options.human_readable).as_str()) - } - Err(_) => Cell::new("Missing") - .with_style(Attr::ForegroundColor(color::RED)) - .with_style(Attr::Bold), - }; - - table.add_row(Row::new(vec![ - Cell::new("File Size").with_style(Attr::Bold), - file_size_cell, - ])); - - let compression_engine = - compression::get_engine(compression_type).expect("Unable to get compression engine"); - let magic = compression_engine.magic(item_path.clone()); - - let file_magic_cell = match magic { - Ok(magic) => Cell::new(magic.as_str()), - Err(e) => Cell::new(&e.to_string()) - .with_style(Attr::ForegroundColor(color::RED)) - .with_style(Attr::Bold), - }; - - table.add_row(Row::new(vec![ - Cell::new("File Magic").with_style(Attr::Bold), - file_magic_cell, - ])); - - table.add_row(Row::new(vec![ - Cell::new("Tags").with_style(Attr::Bold), - Cell::new(&item_tags.join(" ")), - ])); - - for meta in db::get_item_meta(conn, &item)? { - let meta_name = format!("Meta: {}", &meta.name); - table.add_row(Row::new(vec![ - Cell::new(meta_name.as_str()).with_style(Attr::Bold), - Cell::new(&meta.value), - ])); - } - - table.printstd(); - Ok(()) - } else { - Err(anyhow!("Unable to find matching item in database")) - } }