diff options
Diffstat (limited to 'mdbp/common.py')
-rw-r--r-- | mdbp/common.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/mdbp/common.py b/mdbp/common.py index ba4b20d..df434cb 100644 --- a/mdbp/common.py +++ b/mdbp/common.py @@ -4,6 +4,7 @@ from __future__ import annotations import argparse import contextlib +import fnmatch import hashlib import importlib.resources import json @@ -181,3 +182,12 @@ def tar_add(tarobj: tarfile.TarFile, path: pathlib.Path) -> None: info.mtime = int(statres.st_mtime) with path.open("rb") as fobj: tarobj.addfile(info, fobj) + + +def clean_dir(directory: pathlib.Path, patterns: typing.List[str]) -> None: + """Delete all entries of `directory` that match none of the given + `patterns`.""" + for entry in directory.iterdir(): + if not any(fnmatch.fnmatchcase(entry.name, pattern) + for pattern in patterns): + entry.unlink() |