106 lines
2.5 KiB
Python
Executable file
106 lines
2.5 KiB
Python
Executable file
#!/usr/bin/env python
|
|
#
|
|
# Copyright (C) 2009 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the 'License');
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an 'AS IS' BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
import cgi, os, string, sys
|
|
|
|
def IsDifferent(row):
|
|
val = None
|
|
for v in row:
|
|
if v:
|
|
if not val:
|
|
val = v
|
|
else:
|
|
if val != v:
|
|
return True
|
|
return False
|
|
|
|
def main(argv):
|
|
inputs = argv[1:]
|
|
data = {}
|
|
index = 0
|
|
for input in inputs:
|
|
f = file(input, "r")
|
|
lines = f.readlines()
|
|
f.close()
|
|
lines = map(string.split, lines)
|
|
lines = map(lambda (x,y): (y,int(x)), lines)
|
|
for fn,sz in lines:
|
|
if not data.has_key(fn):
|
|
data[fn] = {}
|
|
data[fn][index] = sz
|
|
index = index + 1
|
|
rows = []
|
|
for fn,sizes in data.iteritems():
|
|
row = [fn]
|
|
for i in range(0,index):
|
|
if sizes.has_key(i):
|
|
row.append(sizes[i])
|
|
else:
|
|
row.append(None)
|
|
rows.append(row)
|
|
rows = sorted(rows, key=lambda x: x[0])
|
|
print """<html>
|
|
<head>
|
|
<style type="text/css">
|
|
.fn, .sz, .z, .d {
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
}
|
|
.sz, .z, .d {
|
|
text-align: right;
|
|
}
|
|
.fn {
|
|
background-color: #ffffdd;
|
|
}
|
|
.sz {
|
|
background-color: #ffffcc;
|
|
}
|
|
.z {
|
|
background-color: #ffcccc;
|
|
}
|
|
.d {
|
|
background-color: #99ccff;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
"""
|
|
print "<table>"
|
|
print "<tr>"
|
|
for input in inputs:
|
|
combo = input.split(os.path.sep)[1]
|
|
print " <td class='fn'>%s</td>" % cgi.escape(combo)
|
|
print "</tr>"
|
|
|
|
for row in rows:
|
|
print "<tr>"
|
|
for sz in row[1:]:
|
|
if not sz:
|
|
print " <td class='z'> </td>"
|
|
elif IsDifferent(row[1:]):
|
|
print " <td class='d'>%d</td>" % sz
|
|
else:
|
|
print " <td class='sz'>%d</td>" % sz
|
|
print " <td class='fn'>%s</td>" % cgi.escape(row[0])
|
|
print "</tr>"
|
|
print "</table>"
|
|
print "</body></html>"
|
|
|
|
if __name__ == '__main__':
|
|
main(sys.argv)
|
|
|
|
|