8 def modulesFromSubprocess():
10 return subprocess.Popen('awk "/ethernet/{print \$3}" /lib/discover/pci.lst |sort |uniq',
11 stdout=subprocess.PIPE, shell=True).communicate()[0].splitlines()
13 def modulesFromOwnFileinput():
15 for i in fileinput.input('/lib/discover/pci.lst'):
17 tmplist = i.split('\t', 3)
23 if type == 'ethernet' and mod != 'unknown':
30 f = open('/lib/discover/pci.lst', 'r')
33 tmplist = i.split('\t', 4)
39 if type == 'ethernet' and mod != 'unknown':
44 def modulesFromOwn2():
45 f = open('/lib/discover/pci.lst', 'r')
47 ethlinefilter = re.compile('ethernet')
48 modlist = filter(ethlinefilter.search, f)
51 tmplist = i.split('\t', 4)
57 if type == 'ethernet' and mod != 'unknown':
68 return os.path.split(p)[1]
70 def generateModDep_basename():
72 moddepfile = open(sys.argv[1], 'r')
75 mainmod = tmplist.pop(0)
76 mainmod = mainmod.rstrip(':')
77 rawmod = mainmod.rstrip('.ko')
78 rawmod = osbasename(rawmod)
80 newlist.append((rawmod, mainmod))
84 newlist.append((a, i))
85 moddep[rawmod] = newlist
89 def generateModDep_mybasename():
91 moddepfile = open(sys.argv[1], 'r')
94 mainmod = tmplist.pop(0)
95 mainmod = mainmod.rstrip(':')
96 rawmod = mainmod.rstrip('.ko')
97 rawmod = basename(rawmod)
99 newlist.append((rawmod, mainmod))
103 newlist.append((a, i))
104 moddep[rawmod] = newlist
110 head, tail = p[:i], p[i:]
111 if head and head != '/'*len(head):
112 head = head.rstrip('/')
117 head, tail = p[:i], p[i:]
118 head = head.rstrip('/')
123 def generateModDep_split():
125 moddepfile = open(sys.argv[1], 'r')
128 mainmod = tmplist.pop(0)
129 mainmod = mainmod.rstrip(':')
130 rawmod = mainmod.rstrip('.ko')
131 (a, rawmod) = ossplit(rawmod)
133 newlist.append((rawmod, mainmod))
137 newlist.append((a, i))
138 moddep[rawmod] = newlist
142 def generateModDep_mysplit():
144 moddepfile = open(sys.argv[1], 'r')
147 mainmod = tmplist.pop(0)
148 mainmod = mainmod.rstrip(':')
149 rawmod = mainmod.rstrip('.ko')
150 (a, rawmod) = split(rawmod)
152 newlist.append((rawmod, mainmod))
156 newlist.append((a, i))
157 moddep[rawmod] = newlist
161 def generateOutput(modlist, moddep):
165 for (j, k) in moddep[i]:
171 def calculateModuleDep():
172 #modlist = modulesFromSubprocess()
173 #modlist = modulesFromOwnFileinput()
174 #modlist = modulesFromOwn()
175 modlist = modulesFromOwn2()
177 #moddep = generateModDep_basename()
178 #moddep = generateModDep_split()
179 #moddep = generateModDep_mysplit()
180 moddep = generateModDep_mybasename()
182 output = generateOutput(modlist, moddep)
183 return output.values()
185 #############################################################################
187 if __name__ == '__main__':
188 if len(sys.argv) != 2:
189 print 'Error: you should give me the path to your modules.dep'
192 for i in calculateModuleDep():