]> Pileus Git - ~andy/sunrise/blobdiff - scripts/cleanemptydirs.py
media-gfx/ktikz: Properly fix qt deps
[~andy/sunrise] / scripts / cleanemptydirs.py
index 9ae1e0667b9e8dc9353685f7325b54792840dcef..3ae15bf1ca1349e4ec9371e0bcce834c6551befa 100755 (executable)
@@ -1,12 +1,46 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
 
-"""find empty dirs"""
+"""find empty dirs and check for obsolete package.mask entries"""
 
+from os.path import join, getsize, isfile, isdir
+from sys import stderr
+from portage.versions import pkgsplit
+import portage.env.config
 import os
-from os.path import join, getsize
+
+# find empty directories
 for root, dirs, files in os.walk('.'):
-    for ignoredir in ('CVS','.svn','xfce-base','xfce-extra','eclass'):
+    for ignoredir in ('CVS','.svn','.git','eclass'):
         if ignoredir in dirs:
             dirs.remove(ignoredir)
     if len(dirs)+len(files) == 0:
         print root, "seems to be empty"
+
+
+# find obsolete package.mask entries
+PACKAGE_MASK = join(os.getcwd(), "profiles/package.mask")
+TOCHECK = []
+
+if not isfile(PACKAGE_MASK):
+       print >> stderr, "can't find package.mask, you must be in the overlay root!"
+       exit(1)
+
+PMASK = portage.env.config.PackageMaskFile(PACKAGE_MASK)
+PMASK.load()
+
+for key in PMASK.keys():
+       # remove =, >=, ~ etc.
+       while not key[0].isalpha():
+               key = key[1:]
+       # remove trailing * or . like in: ...-1.4.* or so
+       while key[-1] == "*" or key[-1] == ".":
+               key = key[:-1]
+       
+       if pkgsplit(key):
+               TOCHECK.append(pkgsplit(key)[0])
+       else:
+               TOCHECK.append(key)
+
+for item in TOCHECK:
+       if not isdir(item):
+               print "package.mask entry for '%s' is obsolete!" % str(item)