Add rule to preserve unread tag when run with --remove-all.

This commit is contained in:
Bill Thiede 2023-03-19 20:42:35 -07:00
parent fbe7dade54
commit 7bfef154d9

View File

@ -155,12 +155,8 @@ fn notmuch_from_rules<W: Write>(mut w: W, rules: &[Rule]) -> anyhow::Result<()>
eprintln!("rule has unknown match {:?}", r); eprintln!("rule has unknown match {:?}", r);
continue; continue;
} }
lines.push(format!(
// TODO(wathiede): this assumes `notmuch new` is configured to add let rule = match m.match_type {
// `tag:unprocessed` to all new mail.
r#"-unprocessed +{} -- tag:unprocessed {}"{}""#,
t,
match m.match_type {
MatchType::From => "from:", MatchType::From => "from:",
// TODO(wathiede): something more specific? // TODO(wathiede): something more specific?
MatchType::Sender => "from:", MatchType::Sender => "from:",
@ -176,8 +172,17 @@ fn notmuch_from_rules<W: Write>(mut w: W, rules: &[Rule]) -> anyhow::Result<()>
| MatchType::XOriginalTo | MatchType::XOriginalTo
| MatchType::XSpam => continue, | MatchType::XSpam => continue,
MatchType::Unknown => unreachable!(), MatchType::Unknown => unreachable!(),
}, };
m.needle // Preserve unread status if run with --remove-all
lines.push(format!(
r#"-unprocessed +{} +unread -- is:unread tag:unprocessed {}"{}""#,
t, rule, m.needle
));
lines.push(format!(
// TODO(wathiede): this assumes `notmuch new` is configured to add
// `tag:unprocessed` to all new mail.
r#"-unprocessed +{} -- tag:unprocessed {}"{}""#,
t, rule, m.needle
)); ));
} }
} }