]> git.pld-linux.org Git - packages/rpm-build-tools.git/blob - check-unused-files.py
- skip
[packages/rpm-build-tools.git] / check-unused-files.py
1 #!/usr/bin/python
2
3 import subprocess
4 import sys
5 import os
6 import fnmatch
7
8 if len(sys.argv) != 2:
9     print >> sys.stderr, "Usage: %s <spec>" % sys.argv[0]
10     sys.exit(1)
11
12 spec = sys.argv[1]
13
14 if not os.path.isfile(spec):
15     print >> sys.stderr, "%s: %s doesn't exist!" % (sys.argv[0], spec)
16     sys.exit(1)
17
18 dir = os.path.dirname(spec)
19 if dir == '':
20     dir = '.'
21
22 p = subprocess.Popen(['rpm-specdump', spec], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
23 (out, err) = p.communicate(None)
24 p.wait()
25 if err:
26     print >> sys.stderr, "%s: %s" % (sys.argv[0], err)
27     sys.exit(1)
28
29 files = []
30
31 for l in out.split('\n'):
32     data = l.split()
33     if len(data) != 3 or data[0] != 's':
34         continue
35     file = os.path.basename(data[2])
36     files.append(file)
37
38 obsolete = []
39
40 def blacklisted(file):
41     if file == os.path.basename(spec):
42         return True
43
44     if file in [ '.', '..', 'CVS', '.cvsignore', 'dropin', 'md5', 'adapter', 'builder', 'pldnotify.awk',
45             'relup.sh', 'compile.sh', 'repackage.sh', 'pearize.sh', 'rsync.sh', 'TODO']:
46         return True
47
48     for pat in ['log.*', '.#*', '*~', '*.orig', '*.sw?']:
49         if fnmatch.fnmatch(file, pat):
50             return True
51
52     return False
53
54 for file in os.listdir(dir):
55     file = os.path.basename(file)
56     if blacklisted(file):
57         continue
58
59     if file not in files:
60         print "Obsolete file: %s" % file
61         obsolete.append(file)
62
63 if obsolete:
64     print
65     print "cvs rm -f %s" % " ".join(obsolete)
66     print "cvs commit -m '- drop obsolete files' %s" % " ".join(obsolete)
This page took 0.02717 seconds and 4 git commands to generate.