Make glob matching case-insensitive by default

This commit is contained in:
Eike Kettner
2021-01-09 13:23:15 +01:00
parent 5fe727e522
commit d712f8303d
5 changed files with 110 additions and 80 deletions

View File

@ -51,11 +51,11 @@ object ReadMail {
(Stream
.eval(bodyEntry)
.flatMap(e => Stream.emits(e.toSeq))
.filter(a => glob.matches(a.name)) ++
.filter(a => glob.matches(caseSensitive = false)(a.name)) ++
Stream
.eval(TnefExtract.replace(mail))
.flatMap(m => Stream.emits(m.attachments.all))
.filter(a => a.filename.exists(glob.matches))
.filter(a => a.filename.exists(glob.matches(caseSensitive = false)))
.map(a =>
Binary(a.filename.getOrElse("noname"), a.mimeType.toLocal, a.content)
))

View File

@ -243,7 +243,9 @@ object ExtractArchive {
)
def filterNames(filter: Glob): Extracted =
copy(files = files.filter(ra => filter.matches(ra.name.getOrElse(""))))
copy(files =
files.filter(ra => filter.matches(caseSensitive = false)(ra.name.getOrElse("")))
)
def setMeta(m: MetaProposal): Extracted =
setMeta(MetaProposalList.of(m))

View File

@ -182,7 +182,7 @@ object ScanMailboxTask {
ctx.args.subjectFilter match {
case Some(sf) =>
def check(mh: MailHeader): F[Option[MailHeader]] =
if (sf.matches(mh.subject))
if (sf.matches(caseSensitive = false)(mh.subject))
ctx.logger.debug(
s"Including mail '${mh.subject}', it matches the filter."
) *> Option(mh).pure[F]