summaryrefslogtreecommitdiff
path: root/demo/py.cleanup
blob: 512389ff34bc871102d3541a9c147f8b276a6e32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#! /usr/bin/env python
import sys, os, stat
from bsdopendirtype import opendir

def clean(path):
    global count
    try:
        content = opendir(path)
    except OSError:
        print >> sys.stderr, "skipping", path
        return
    for filename, smode in content:
        if stat.S_ISDIR(smode):
            clean(filename)
            if filename.endswith('/__pycache__'):
                try:
                    os.rmdir(filename)
                except OSError:
                    pass
        elif (filename.endswith('.pyc') or filename.endswith('.pyo') or
              filename.endswith('.pyc~') or filename.endswith('.pyo~')):
            os.unlink(filename)
            count += 1

count = 0

for arg in sys.argv[1:] or ['.']:
    print "cleaning path", arg, "of .pyc/.pyo/__pycache__ files"
    clean(arg)

print "%d files removed" % (count,)