1# -*- coding: utf-8 -*- 2from __future__ import print_function, division 3import os 4import sys 5 6# Internal build script for generating debugging test .so size. 7# Usage: 8# python libsize.py file.so save.txt -- displays the size of file.so and, if save.txt exists, compares it to the 9# size in it, then overwrites save.txt with the new size for future runs. 10 11if len(sys.argv) != 3: 12 sys.exit("Invalid arguments: usage: python libsize.py file.so save.txt") 13 14lib = sys.argv[1] 15save = sys.argv[2] 16 17if not os.path.exists(lib): 18 sys.exit("Error: requested file ({}) does not exist".format(lib)) 19 20libsize = os.path.getsize(lib) 21 22print("------", os.path.basename(lib), "file size:", libsize, end="") 23 24if os.path.exists(save): 25 with open(save) as sf: 26 oldsize = int(sf.readline()) 27 28 if oldsize > 0: 29 change = libsize - oldsize 30 if change == 0: 31 print(" (no change)") 32 else: 33 print(" (change of {:+} bytes = {:+.2%})".format(change, change / oldsize)) 34else: 35 print() 36 37with open(save, "w") as sf: 38 sf.write(str(libsize)) 39