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:]))