12 spec = "%s.spec" % os.path.basename(os.getcwd())
14 if not os.path.isfile(spec):
15 print >> sys.stderr, "%s: %s doesn't exist!" % (sys.argv[0], spec)
18 dir = os.path.dirname(spec)
22 p = subprocess.Popen(['rpm-specdump', spec], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
23 (out, err) = p.communicate(None)
26 print >> sys.stderr, "%s: %s" % (sys.argv[0], err)
31 for l in out.split('\n'):
33 if len(data) != 3 or data[0] != 's':
35 file = os.path.basename(data[2])
41 exclude = ['log.*', '.#*', '*~', '*.orig', '*.sw?']
43 # read .cvsignore, distfiles files are filled there
44 if os.path.isfile('%s/.cvsignore' % dir):
45 f = open('%s/.cvsignore' % dir , 'r')
46 for l in f.readlines():
47 exclude.append(l.rstrip())
49 def cvs_entries(file):
50 f = open('%s/CVS/Entries' % dir , 'r')
52 for l in f.readlines():
56 files.append(parts[1])
58 cvsfiles = cvs_entries(dir)
60 def blacklisted(file):
61 if file == os.path.basename(spec):
64 if file in [ '.', '..', 'CVS', 'TODO']:
67 if os.path.isdir(file):
71 if fnmatch.fnmatch(file, pat):
76 for file in os.listdir(dir):
77 file = os.path.basename(file)
81 if not file in cvsfiles:
82 print "Not in cvs: %s" % file
86 print "Obsolete file: %s" % file
91 print "cvs rm -f %s" % " ".join(obsolete)
92 print "cvs commit -m '- drop obsolete files' %s" % " ".join(obsolete)