56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
import os
|
|
import sys
|
|
import re
|
|
|
|
from lib import utils as Utils
|
|
|
|
def Main (argv):
|
|
toolsDir = os.path.dirname (os.path.abspath (__file__))
|
|
rootDir = os.path.dirname (toolsDir)
|
|
os.chdir (rootDir)
|
|
|
|
engineFiles = []
|
|
sourceFolder = os.path.join (rootDir, 'source', 'engine')
|
|
for dirName in sorted (os.listdir (sourceFolder)):
|
|
dirPath = os.path.join (sourceFolder, dirName)
|
|
if not os.path.isdir (dirPath):
|
|
continue
|
|
for fileName in sorted (os.listdir (dirPath)):
|
|
engineFiles.append ({
|
|
'dirName': dirName,
|
|
'fileName': fileName
|
|
})
|
|
|
|
mainFilePath = os.path.join (sourceFolder, 'main.js')
|
|
eolChar = Utils.GetEOLCharFromFile (mainFilePath)
|
|
|
|
exportedSymbols = []
|
|
mainFileContent = ''
|
|
for engineFile in engineFiles:
|
|
engineFilePath = os.path.join (sourceFolder, engineFile['dirName'], engineFile['fileName'])
|
|
content = Utils.GetFileContent (engineFilePath)
|
|
matches = re.findall ('export class ([a-zA-Z0-9]+)', content)
|
|
matches.extend (re.findall ('export function ([a-zA-Z0-9]+)', content))
|
|
matches.extend (re.findall ('export const ([a-zA-Z0-9]+)', content))
|
|
matches.extend (re.findall ('export let ([a-zA-Z0-9]+)', content))
|
|
if len (matches) == 0:
|
|
continue
|
|
relativePath = './' + engineFile['dirName'] + '/' + engineFile['fileName']
|
|
mainFileContent += 'import { ' + ', '.join (matches) + ' } from \'' + relativePath + '\';' + eolChar
|
|
for match in matches:
|
|
exportedSymbols.append (match)
|
|
|
|
mainFileContent += eolChar + 'export {' + eolChar
|
|
for i in range (0, len (exportedSymbols)):
|
|
exportedSymbol = exportedSymbols[i]
|
|
mainFileContent += ' ' + exportedSymbol
|
|
if i < len (exportedSymbols) - 1:
|
|
mainFileContent += ','
|
|
mainFileContent += eolChar
|
|
mainFileContent += '};' + eolChar
|
|
|
|
Utils.WriteContentToFile (mainFilePath, mainFileContent)
|
|
return 0
|
|
|
|
sys.exit (Main (sys.argv))
|