mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| #
 | |
| # This script reads a syntaxTest file and writes all
 | |
| # sources into their own files. If one source-name specifies subdirectories
 | |
| # those will be created too.
 | |
| 
 | |
| # Usage: scripts/splitSources.py pathToTestfile
 | |
| # as a result prints
 | |
| # -  string of created files separated by whitespaces
 | |
| # -  'false' if the file only had one source
 | |
| 
 | |
| import sys
 | |
| import os
 | |
| 
 | |
| hasMultipleSources = False
 | |
| createdSources = []
 | |
| 
 | |
| def extractSourceName(line):
 | |
|     if line.find("/") > -1:
 | |
|         filePath = line[13: line.rindex("/")]
 | |
|         # fileName = line[line.rindex("/")+1: line.find(" ====")]
 | |
|         srcName = line[line.find(":")+2: line.find(" ====")]
 | |
|         return filePath, srcName
 | |
|     return False, line[line.find(":")+2 : line.find(" ====")]
 | |
| 
 | |
| # expects the first line of lines to be "==== Source: sourceName ===="
 | |
| # writes the following source into a file named sourceName
 | |
| def writeSourceToFile(lines):
 | |
|     filePath, srcName = extractSourceName(lines[0])
 | |
|     # print("sourceName is ", srcName)
 | |
|     # print("filePath is", filePath)
 | |
|     if filePath != False:
 | |
|         os.system("mkdir -p " + filePath)
 | |
|     f = open(srcName, mode='a+', encoding='utf8')
 | |
|     createdSources.append(srcName)
 | |
|     i = 0
 | |
|     for idx, line in enumerate(lines[1:]):
 | |
| 
 | |
|         # write to file
 | |
|         if line[:12] != "==== Source:":
 | |
|             f.write(line)
 | |
| 
 | |
|         # recursive call if there is another source
 | |
|         else:
 | |
|             writeSourceToFile(lines[1+idx:])
 | |
|             break
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     filePath = sys.argv[1]
 | |
|     # decide if file has multiple sources
 | |
|     lines = open(filePath, mode='r', encoding='utf8').read().splitlines()
 | |
|     if lines[0][:12] == "==== Source:":
 | |
|         hasMultipleSources = True
 | |
|         writeSourceToFile(lines)
 | |
| 
 | |
|     if hasMultipleSources:
 | |
|         srcString = ""
 | |
|         for src in createdSources:
 | |
|             srcString += src + ' '
 | |
|         print(srcString)
 | |
|     else:
 | |
|         sys.exit(1)
 |