You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							38 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							38 lines
						
					
					
						
							1.1 KiB
						
					
					
				
								from __future__ import print_function, division
							 | 
						|
								import os
							 | 
						|
								import sys
							 | 
						|
								
							 | 
						|
								# Internal build script for generating debugging test .so size.
							 | 
						|
								# Usage:
							 | 
						|
								#     python libsize.py file.so save.txt -- displays the size of file.so and, if save.txt exists, compares it to the
							 | 
						|
								#                                           size in it, then overwrites save.txt with the new size for future runs.
							 | 
						|
								
							 | 
						|
								if len(sys.argv) != 3:
							 | 
						|
								    sys.exit("Invalid arguments: usage: python libsize.py file.so save.txt")
							 | 
						|
								
							 | 
						|
								lib = sys.argv[1]
							 | 
						|
								save = sys.argv[2]
							 | 
						|
								
							 | 
						|
								if not os.path.exists(lib):
							 | 
						|
								    sys.exit("Error: requested file ({}) does not exist".format(lib))
							 | 
						|
								
							 | 
						|
								libsize = os.path.getsize(lib)
							 | 
						|
								
							 | 
						|
								print("------", os.path.basename(lib), "file size:", libsize, end='')
							 | 
						|
								
							 | 
						|
								if os.path.exists(save):
							 | 
						|
								    with open(save) as sf:
							 | 
						|
								        oldsize = int(sf.readline())
							 | 
						|
								
							 | 
						|
								    if oldsize > 0:
							 | 
						|
								        change = libsize - oldsize
							 | 
						|
								        if change == 0:
							 | 
						|
								            print(" (no change)")
							 | 
						|
								        else:
							 | 
						|
								            print(" (change of {:+} bytes = {:+.2%})".format(change, change / oldsize))
							 | 
						|
								else:
							 | 
						|
								    print()
							 | 
						|
								
							 | 
						|
								with open(save, 'w') as sf:
							 | 
						|
								    sf.write(str(libsize))
							 | 
						|
								
							 |