X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=check-unused-files.py;h=4ecc6a95816a7a062ca0d185f2e62166d44d2fd3;hb=refs%2Ftags%2Fauto%2Fth%2Frpm-build-tools-4.8-5;hp=c36751ef61f389b2ac1f9f9d4730aa6e3eb65a1b;hpb=e77c91c6a5bf027a4cbbcd1265d07e1fc6029409;p=packages%2Frpm-build-tools.git diff --git a/check-unused-files.py b/check-unused-files.py old mode 100644 new mode 100755 index c36751e..4ecc6a9 --- a/check-unused-files.py +++ b/check-unused-files.py @@ -3,12 +3,13 @@ import subprocess import sys import os +import fnmatch -if len(sys.argv) != 2: - print >> sys.stderr, "Usage: %s " % sys.argv[0] - sys.exit(1) - -spec = sys.argv[1] +if len(sys.argv) == 2: + spec = sys.argv[1] +else: + # try autodetecting + spec = "%s.spec" % os.path.basename(os.getcwd()) if not os.path.isfile(spec): print >> sys.stderr, "%s: %s doesn't exist!" % (sys.argv[0], spec) @@ -36,19 +37,55 @@ for l in out.split('\n'): obsolete = [] +# files to exclude +exclude = ['log.*', '.#*', '*~', '*.orig', '*.sw?', '.bigfiles', 'sources'] + +# read .gitignore, distfiles files are filled there +if os.path.isfile('%s/.gitignore' % dir): + f = open('%s/.gitignore' % dir , 'r') + for l in f.readlines(): + exclude.append(l.rstrip()) + +def git_entries(file): + p = subprocess.Popen(['git', 'ls-files'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + (out, err) = p.communicate(None) + p.wait() + if err: + print >> sys.stderr, "%s: %s" % (sys.argv[0], err) + sys.exit(1) + return out.split('\n') +gitfiles = git_entries(dir) + +def blacklisted(file): + if file == os.path.basename(spec): + return True + + if file in [ '.', '..', '.git', 'CVS', 'TODO']: + return True + + if os.path.isdir(file): + return True + + for pat in exclude: + if fnmatch.fnmatch(file, pat): + return True + + return False + for file in os.listdir(dir): file = os.path.basename(file) - if file in [ '.', '..', 'CVS', '.cvsignore', 'dropin', 'md5', 'adapter', 'builder', - 'relup.sh', 'compile.sh', 'repackage.sh', 'TODO', os.path.basename(spec) ]: + if blacklisted(file): + continue + + if not file in gitfiles: + print "Not in repo: %s" % file continue + if file not in files: print "Obsolete file: %s" % file obsolete.append(file) if obsolete: print - print "cvs rm -f %s" % " ".join(obsolete) - print "cvs commit -m '- drop obsolete files' %s" % " ".join(obsolete) - - - + print "git rm %s" % " ".join(obsolete) + print "git commit -m '- drop obsolete files' %s" % " ".join(obsolete)