diff --git a/src/services/item_service.rs b/src/services/item_service.rs index 1ce1cff..39a24cd 100644 --- a/src/services/item_service.rs +++ b/src/services/item_service.rs @@ -173,6 +173,30 @@ impl ItemService { db::add_meta(&tx, item_id, k, v)?; } } + + // Print the "KEEP: New item" message before starting to read input + if !settings.quiet { + if std::io::stderr().is_terminal() { + let mut t = term::stderr().unwrap(); + let _ = t.reset(); + let _ = t.attr(term::Attr::Bold); + let _ = write!(t, "KEEP:"); + let _ = t.reset(); + let _ = write!(t, " New item "); + let _ = t.attr(term::Attr::Bold); + let _ = write!(t, "{item_id}"); + let _ = t.reset(); + let _ = write!(t, " tags: "); + let _ = t.attr(term::Attr::Bold); + let _ = write!(t, "{}", tags.join(" ")); + let _ = t.reset(); + let _ = writeln!(t); + let _ = std::io::stderr().flush(); + } else { + let mut t = std::io::stderr(); + let _ = writeln!(t, "KEEP: New item: {} tags: {:?}", item_id, tags); + } + } let mut plugins = self.meta_service.get_plugins(cmd, settings); debug!("ITEM_SERVICE: Got {} meta plugins", plugins.len()); @@ -209,29 +233,6 @@ impl ItemService { tx.commit()?; debug!("ITEM_SERVICE: Transaction committed successfully"); - - if !settings.quiet { - if std::io::stderr().is_terminal() { - let mut t = term::stderr().unwrap(); - let _ = t.reset(); - let _ = t.attr(term::Attr::Bold); - let _ = write!(t, "KEEP:"); - let _ = t.reset(); - let _ = write!(t, " New item "); - let _ = t.attr(term::Attr::Bold); - let _ = write!(t, "{item_id}"); - let _ = t.reset(); - let _ = write!(t, " tags: "); - let _ = t.attr(term::Attr::Bold); - let _ = write!(t, "{}", tags.join(" ")); - let _ = t.reset(); - let _ = writeln!(t); - let _ = std::io::stderr().flush(); - } else { - let mut t = std::io::stderr(); - let _ = writeln!(t, "KEEP: New item: {} tags: {:?}", item_id, tags); - } - } debug!("ITEM_SERVICE: Getting final item with metadata"); self.get_item(conn, item_id)