diff options
Diffstat (limited to 'scripts/tiny/ksize.py')
| -rwxr-xr-x | scripts/tiny/ksize.py | 61 |
1 files changed, 33 insertions, 28 deletions
diff --git a/scripts/tiny/ksize.py b/scripts/tiny/ksize.py index 4006f2f6f1..ea1ca7ff23 100755 --- a/scripts/tiny/ksize.py +++ b/scripts/tiny/ksize.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # Copyright (c) 2011, Intel Corporation. # All rights reserved. @@ -28,22 +28,20 @@ import sys import getopt import os from subprocess import * -from string import join - def usage(): prog = os.path.basename(sys.argv[0]) - print 'Usage: %s [OPTION]...' % (prog) - print ' -d, display an additional level of drivers detail' - print ' -h, --help display this help and exit' - print '' - print 'Run %s from the top-level Linux kernel build directory.' % (prog) + print('Usage: %s [OPTION]...' % prog) + print(' -d, display an additional level of drivers detail') + print(' -h, --help display this help and exit') + print('') + print('Run %s from the top-level Linux kernel build directory.' % prog) class Sizes: def __init__(self, glob): self.title = glob - p = Popen("size -t " + glob, shell=True, stdout=PIPE, stderr=PIPE) + p = Popen("size -t " + str(glob), shell=True, stdout=PIPE, stderr=PIPE) output = p.communicate()[0].splitlines() if len(output) > 2: sizes = output[-1].split()[0:4] @@ -55,8 +53,8 @@ class Sizes: self.text = self.data = self.bss = self.total = 0 def show(self, indent=""): - print "%-32s %10d | %10d %10d %10d" % \ - (indent+self.title, self.total, self.text, self.data, self.bss) + print("%-32s %10d | %10d %10d %10d" % \ + (indent+self.title, self.total, self.text, self.data, self.bss)) class Report: @@ -64,18 +62,18 @@ class Report: r = Report(filename, title) path = os.path.dirname(filename) - p = Popen("ls " + path + "/*.o | grep -v built-in.o", + p = Popen("ls " + str(path) + "/*.o | grep -v built-in.o", shell=True, stdout=PIPE, stderr=PIPE) - glob = join(p.communicate()[0].splitlines()) - oreport = Report(glob, path + "/*.o") - oreport.sizes.title = path + "/*.o" + glob = ' '.join(p.communicate()[0].splitlines()) + oreport = Report(glob, str(path) + "/*.o") + oreport.sizes.title = str(path) + "/*.o" r.parts.append(oreport) if subglob: p = Popen("ls " + subglob, shell=True, stdout=PIPE, stderr=PIPE) for f in p.communicate()[0].splitlines(): path = os.path.dirname(f) - r.parts.append(Report.create(f, path, path + "/*/built-in.o")) + r.parts.append(Report.create(f, path, str(path) + "/*/built-in.o")) r.parts.sort(reverse=True) for b in r.parts: @@ -101,22 +99,29 @@ class Report: def show(self, indent=""): rule = str.ljust(indent, 80, '-') - print "%-32s %10s | %10s %10s %10s" % \ - (indent+self.title, "total", "text", "data", "bss") - print rule + print("%-32s %10s | %10s %10s %10s" % \ + (indent+self.title, "total", "text", "data", "bss")) + print(rule) self.sizes.show(indent) - print rule + print(rule) for p in self.parts: if p.sizes.total > 0: p.sizes.show(indent) - print rule - print "%-32s %10d | %10d %10d %10d" % \ + print(rule) + print("%-32s %10d | %10d %10d %10d" % \ (indent+"sum", self.totals["total"], self.totals["text"], - self.totals["data"], self.totals["bss"]) - print "%-32s %10d | %10d %10d %10d" % \ + self.totals["data"], self.totals["bss"])) + print("%-32s %10d | %10d %10d %10d" % \ (indent+"delta", self.deltas["total"], self.deltas["text"], - self.deltas["data"], self.deltas["bss"]) - print "\n" + self.deltas["data"], self.deltas["bss"])) + print("\n") + + def __lt__(this, that): + if that is None: + return 1 + if not isinstance(that, Report): + raise TypeError + return this.sizes.total < that.sizes.total def __cmp__(this, that): if that is None: @@ -133,8 +138,8 @@ class Report: def main(): try: opts, args = getopt.getopt(sys.argv[1:], "dh", ["help"]) - except getopt.GetoptError, err: - print '%s' % str(err) + except getopt.GetoptError as err: + print('%s' % str(err)) usage() sys.exit(2) |
