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 .gitignore, distfiles files are filled there
44 if os.path.isfile('%s/.gitignore' % dir):
45 f = open('%s/.gitignore' % dir , 'r')
46 for l in f.readlines():
47 exclude.append(l.rstrip())
49 def git_entries(file):
50 p = subprocess.Popen(['git', 'ls-files'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
51 (out, err) = p.communicate(None)
54 print >> sys.stderr, "%s: %s" % (sys.argv[0], err)
56 return out.split('\n')
57 gitfiles = git_entries(dir)
59 def blacklisted(file):
60 if file == os.path.basename(spec):
63 if file in [ '.', '..', '.git', 'CVS', 'TODO']:
66 if os.path.isdir(file):
70 if fnmatch.fnmatch(file, pat):
75 for file in os.listdir(dir):
76 file = os.path.basename(file)
80 if not file in gitfiles:
81 print "Not in repo: %s" % file
85 print "Obsolete file: %s" % file
90 print "git rm %s" % " ".join(obsolete)
91 print "git commit -m '- drop obsolete files' %s" % " ".join(obsolete)