-rwxr-xr-x | scripts/builder/main.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/scripts/builder/main.py b/scripts/builder/main.py index b9fe04a..ecdbf6a 100755 --- a/scripts/builder/main.py +++ b/scripts/builder/main.py @@ -91,101 +91,106 @@ def build (settings, repository): if 'install' in settings['versions']: raise Exception("repository has pending changes, can't 'install'") else: print "\nWARNING: repository has pending changes\n" for frontend in settings['frontends']: normalizedFrontendName = frontend.replace(".", "_") builderModuleName = normalizedFrontendName + 'Builder' builderClassName = normalizedFrontendName.title() + 'Builder' #print ("BUILD FRONTEND - module: " + builderModuleName + " , class: " + builderClassName) builderModule = __import__(builderModuleName) builderClass = getattr(builderModule, builderClassName) builder = builderClass(frontend, loadSettings('frontend', frontend), repository.version()) #builder = frontendBuilder.FrontendBuilder(frontend, loadSettings('frontend', frontend), repository.version()) frontends.append(builder) for backend in settings['backends']: assembleBackend(backend, frontends, settings['versions']) #-------------------------------------------------------------------- def clean (): # print "cleaning up …" if os.path.exists(projectTargetDir()): shutil.rmtree(projectTargetDir()) #-------------------------------------------------------------------- def usage (message): if message != None: print "ERROR: " + message print # print "build clean" # print "build clean install" print "build install --ALL" print "build install debug --ALL" print "build install debug development --ALL" # print "build clean install debug --ALL" print "build install debug --backends php python --frontends beta gamma" print "build install debug development --backends php python --frontends beta gamma gamma.mobile" exit(1) #-------------------------------------------------------------------- def allFrontends (): return ['beta', 'gamma', 'gamma.mobile'] def allBackends (): return ['php', 'python'] #-------------------------------------------------------------------- def main (): settings = {} parameters = list(itertools.islice(sys.argv, 1, None)) sys.path.append(os.path.join(scriptDir(), 'backends')) sys.path.append(os.path.join(scriptDir(), 'frontends')) currentRepository = repository.repositoryWithPath(projectBaseDir()) clean() versions = list(itertools.takewhile(lambda x: not x.startswith('--'), parameters)) - settings['versions'] = versions; #['debug', 'install', 'development'] + settings['versions'] = versions; #['debug', 'install', 'development', 'checksum'] parameters = deque(itertools.dropwhile(lambda x: not x.startswith('--'), parameters)) if len(parameters) > 0: parameter = parameters.popleft() if parameter == "--ALL": settings['frontends'] = allFrontends() settings['backends'] = allBackends() else: while parameter != None: values = list(itertools.takewhile(lambda x: not x.startswith('--'), parameters)) if parameter == "--backends": settings['backends'] = values elif parameter == "--frontends": settings['frontends'] = values parameters = deque(itertools.dropwhile(lambda x: not x.startswith('--'), parameters)) if parameters: parameter = parameters.popleft() else: parameter = None + if 'checksum' in settings['versions']: + if not 'backends' in settings: + settings['backends'] = [] + settings['backends'].append('checksum') + if (not settings.has_key('versions')): usage("missing 'versions'") if (not settings.has_key('frontends')): usage("missing 'frontends'") if (not settings.has_key('backends')): usage("missing 'backends'") build(settings, currentRepository) else: usage("Suggestions on how to call the 'build' script:") if __name__ == "__main__": main() |