test_ok1/py/cmdline/pycleanup.py

37 lines
1.2 KiB
Python
Raw Normal View History

#!/usr/bin/env python
"""\
py.cleanup [PATH]
Delete pyc file recursively, starting from PATH (which defaults to the current
working directory). Don't follow links and don't recurse into directories with
a ".".
"""
import py
def main():
parser = py.std.optparse.OptionParser(usage=__doc__)
parser.add_option("-e", "--remove", dest="ext", default=".pyc", action="store",
help="remove files with the given comma-separated list of extensions"
)
parser.add_option("-n", "--dryrun", dest="dryrun", default=False,
action="store_true",
help="display would-be-removed filenames"
)
(options, args) = parser.parse_args()
if not args:
args = ["."]
ext = options.ext.split(",")
def shouldremove(p):
return p.ext in ext
for arg in args:
path = py.path.local(arg)
py.builtin.print_("cleaning path", path, "of extensions", ext)
for x in path.visit(shouldremove, lambda x: x.check(dotfile=0, link=0)):
if options.dryrun:
py.builtin.print_("would remove", x)
else:
py.builtin.print_("removing", x)
x.remove()