From 6a01311af8b17bbd0c7e1ddd6fcc2be60ba093c9 Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Sun, 14 Feb 2021 18:45:21 -0800 Subject: [PATCH] Add empty_directories.py, nonempty_directories.py. --- empty_directories.py | 31 +++++++++++++++++++++++++++++++ nonempty_directories.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 empty_directories.py create mode 100644 nonempty_directories.py diff --git a/empty_directories.py b/empty_directories.py new file mode 100644 index 0000000..b0a399e --- /dev/null +++ b/empty_directories.py @@ -0,0 +1,31 @@ +import argparse +import sys + +from voussoirkit import pathclass +from voussoirkit import pipeable +from voussoirkit import spinal +from voussoirkit import winglob + +def empty_directories_argparse(args): + if args.patterns: + patterns = pipeable.input_many(args.patterns, skip_blank=True, strip=True) + directories = (pathclass.Path(d) for pattern in patterns for d in winglob.glob(pattern)) + else: + directories = pathclass.cwd().listdir() + directories = (d for d in directories if d.is_dir) + + for directory in directories: + if len(directory.listdir()) == 0: + pipeable.stdout(directory.absolute_path) + +def main(argv): + parser = argparse.ArgumentParser(description=__doc__) + + parser.add_argument('patterns', nargs='*') + parser.set_defaults(func=empty_directories_argparse) + + args = parser.parse_args(argv) + return args.func(args) + +if __name__ == '__main__': + raise SystemExit(main(sys.argv[1:])) diff --git a/nonempty_directories.py b/nonempty_directories.py new file mode 100644 index 0000000..9de0fa8 --- /dev/null +++ b/nonempty_directories.py @@ -0,0 +1,31 @@ +import argparse +import sys + +from voussoirkit import pathclass +from voussoirkit import pipeable +from voussoirkit import spinal +from voussoirkit import winglob + +def nonempty_directories_argparse(args): + if args.patterns: + patterns = pipeable.input_many(args.patterns, skip_blank=True, strip=True) + directories = (pathclass.Path(d) for pattern in patterns for d in winglob.glob(pattern)) + else: + directories = pathclass.cwd().listdir() + directories = (d for d in directories if d.is_dir) + + for directory in directories: + if len(directory.listdir()) != 0: + pipeable.stdout(directory.absolute_path) + +def main(argv): + parser = argparse.ArgumentParser(description=__doc__) + + parser.add_argument('patterns', nargs='*') + parser.set_defaults(func=nonempty_directories_argparse) + + args = parser.parse_args(argv) + return args.func(args) + +if __name__ == '__main__': + raise SystemExit(main(sys.argv[1:]))