1*f9a78e0eSmrg#! /usr/bin/python2 2*f9a78e0eSmrgimport os.path 3*f9a78e0eSmrgimport sys 4*f9a78e0eSmrgimport shlex 5*f9a78e0eSmrgimport re 6*f9a78e0eSmrg 7*f9a78e0eSmrgfrom headerutils import * 8*f9a78e0eSmrg 9*f9a78e0eSmrgusage = False 10*f9a78e0eSmrgsrc = list () 11*f9a78e0eSmrgflist = { } 12*f9a78e0eSmrgprocess_h = True 13*f9a78e0eSmrgprocess_c = True 14*f9a78e0eSmrgverbose = False 15*f9a78e0eSmrgall_inc = True 16*f9a78e0eSmrglevel = 0 17*f9a78e0eSmrg 18*f9a78e0eSmrgonly_use_list = list () 19*f9a78e0eSmrg 20*f9a78e0eSmrgfor x in sys.argv[1:]: 21*f9a78e0eSmrg if x[0:2] == "-h": 22*f9a78e0eSmrg usage = True 23*f9a78e0eSmrg else: 24*f9a78e0eSmrg src.append (x) 25*f9a78e0eSmrg 26*f9a78e0eSmrg 27*f9a78e0eSmrgif not usage and len (src) > 0: 28*f9a78e0eSmrg incl = { } 29*f9a78e0eSmrg for fn in src: 30*f9a78e0eSmrg src = readwholefile (fn) 31*f9a78e0eSmrg dup = { } 32*f9a78e0eSmrg for line in src: 33*f9a78e0eSmrg d = find_pound_include (line, True, True) 34*f9a78e0eSmrg if d != "" and d[-2:] ==".h": 35*f9a78e0eSmrg if dup.get (d) == None: 36*f9a78e0eSmrg if incl.get (d) == None: 37*f9a78e0eSmrg incl[d] = 1 38*f9a78e0eSmrg else: 39*f9a78e0eSmrg incl[d] = incl[d]+ 1 40*f9a78e0eSmrg dup[d] = 1 41*f9a78e0eSmrg 42*f9a78e0eSmrg l = list () 43*f9a78e0eSmrg for i in incl: 44*f9a78e0eSmrg l.append ((incl[i], i)) 45*f9a78e0eSmrg l.sort (key=lambda tup:tup[0], reverse=True) 46*f9a78e0eSmrg 47*f9a78e0eSmrg for f in l: 48*f9a78e0eSmrg print str (f[0]) + " : " + f[1] 49*f9a78e0eSmrg 50*f9a78e0eSmrgelse: 51*f9a78e0eSmrg print "count-headers file1 [filen]" 52*f9a78e0eSmrg print "Count the number of occurrences of all includes across all listed files" 53*f9a78e0eSmrg 54*f9a78e0eSmrg 55*f9a78e0eSmrg 56*f9a78e0eSmrg 57*f9a78e0eSmrg 58*f9a78e0eSmrg 59