]> Pileus Git - ~andy/sunrise/blob - scripts/cleanemptydirs.py
add missing die
[~andy/sunrise] / scripts / cleanemptydirs.py
1 #!/usr/bin/env python2
2
3 """find empty dirs and check for obsolete package.mask entries"""
4
5 from os.path import join, getsize, isfile, isdir
6 from sys import stderr
7 from portage.versions import pkgsplit
8 import portage.env.config
9 import os
10
11 # find empty directories
12 for root, dirs, files in os.walk('.'):
13     for ignoredir in ('CVS','.svn','.git','eclass'):
14         if ignoredir in dirs:
15             dirs.remove(ignoredir)
16     if len(dirs)+len(files) == 0:
17         print root, "seems to be empty"
18
19
20 # find obsolete package.mask entries
21 PACKAGE_MASK = join(os.getcwd(), "profiles/package.mask")
22 TOCHECK = []
23
24 if not isfile(PACKAGE_MASK):
25         print >> stderr, "can't find package.mask, you must be in the overlay root!"
26         exit(1)
27
28 PMASK = portage.env.config.PackageMaskFile(PACKAGE_MASK)
29 PMASK.load()
30
31 for key in PMASK.keys():
32         # remove =, >=, ~ etc.
33         while not key[0].isalpha():
34                 key = key[1:]
35         # remove trailing * or . like in: ...-1.4.* or so
36         while key[-1] == "*" or key[-1] == ".":
37                 key = key[:-1]
38         
39         if pkgsplit(key):
40                 TOCHECK.append(pkgsplit(key)[0])
41         else:
42                 TOCHECK.append(key)
43
44 for item in TOCHECK:
45         if not isdir(item):
46                 print "package.mask entry for '%s' is obsolete!" % str(item)