X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2Fbertos_utils.py;h=3957b6746b7b28e57bf3ac9aee53770040c59502;hb=e28fc9dfd2361aecf99ecb8f3f256a8776e266d3;hp=ed9a0db27bf57b3ee7ea30cfc6b7838d8a5df04c;hpb=e86d751b965729dc14510d4ac55a507837f90584;p=bertos.git diff --git a/wizard/bertos_utils.py b/wizard/bertos_utils.py index ed9a0db2..3957b674 100644 --- a/wizard/bertos_utils.py +++ b/wizard/bertos_utils.py @@ -121,106 +121,6 @@ def projectFileGenerator(project_info): project_data["WIZARD_VERSION"] = WIZARD_VERSION return pickle.dumps(project_data) -def createBertosProject(project_info, edit=False): - directory = project_info.info("PROJECT_PATH") - sources_dir = project_info.info("SOURCES_PATH") - old_sources_dir = project_info.info("OLD_SOURCES_PATH") - if not edit: - if os.path.isdir(directory): - shutil.rmtree(directory, True) - os.makedirs(directory) - # Write the project file - f = open(directory + "/project.bertos", "w") - f.write(projectFileGenerator(project_info)) - f.close() - # VERSION file - version_file = open(os.path.join(const.DATA_DIR, "vtemplates/VERSION"), "r").read() - open(directory + "/VERSION", "w").write(versionFileGenerator(project_info, version_file)) - # Destination source dir - srcdir = directory + "/bertos" - if not edit: - # If not in editing mode it copies all the bertos sources in the /bertos subdirectory of the project - shutil.rmtree(srcdir, True) - copytree.copytree(sources_dir + "/bertos", srcdir, ignore_list=const.IGNORE_LIST) - elif old_sources_dir: - # If in editing mode it merges the current bertos sources with the selected ones - # TODO: implement the three way merge algotihm - # - mergeSources(srcdir, sources_dir, old_sources_dir) - # Destination makefile - makefile = directory + "/Makefile" - makefile = open(os.path.join(const.DATA_DIR, "mktemplates/Makefile"), 'r').read() - makefile = makefileGenerator(project_info, makefile) - open(directory + "/Makefile", "w").write(makefile) - # Destination project dir - # prjdir = directory + "/" + os.path.basename(directory) - prjdir = os.path.join(directory, project_info.info("PROJECT_NAME")) - if not edit: - shutil.rmtree(prjdir, True) - os.mkdir(prjdir) - # Destination hw files - hwdir = prjdir + "/hw" - if not edit: - shutil.rmtree(hwdir, True) - os.mkdir(hwdir) - # Copy all the hw files - for module, information in project_info.info("MODULES").items(): - for hwfile in information["hw"]: - string = open(sources_dir + "/" + hwfile, "r").read() - hwfile_path = hwdir + "/" + os.path.basename(hwfile) - if not edit or not os.path.exists(hwfile_path): - # If not in editing mode it copies all the hw files. If in - # editing mode it copies only the files that don't exist yet - open(hwdir + "/" + os.path.basename(hwfile), "w").write(string) - # Destination configurations files - cfgdir = prjdir + "/cfg" - if not edit: - shutil.rmtree(cfgdir, True) - os.mkdir(cfgdir) - # Set properly the autoenabled parameters - for module, information in project_info.info("MODULES").items(): - if "configuration" in information and information["configuration"] != "": - configurations = project_info.info("CONFIGURATIONS") - configuration = configurations[information["configuration"]] - for start, parameter in configuration["paramlist"]: - if "type" in configuration[parameter]["informations"] and configuration[parameter]["informations"]["type"] == "autoenabled": - configuration[parameter]["value"] = "1" if information["enabled"] else "0" - project_info.setInfo("CONFIGURATIONS", configurations) - # Copy all the configuration files - for configuration, information in project_info.info("CONFIGURATIONS").items(): - string = open(sources_dir + "/" + configuration, "r").read() - for start, parameter in information["paramlist"]: - infos = information[parameter] - value = infos["value"] - if "unsigned" in infos["informations"] and infos["informations"]["unsigned"]: - value += "U" - if "long" in infos["informations"] and infos["informations"]["long"]: - value += "L" - string = sub(string, parameter, value) - f = open(cfgdir + "/" + os.path.basename(configuration), "w") - f.write(string) - f.close() - if not edit: - # Destination user mk file (only on project creation) - makefile = open(os.path.join(const.DATA_DIR, "mktemplates/template.mk"), "r").read() - # Deadly performances loss was here :( - makefile = userMkGenerator(project_info, makefile) - open(prjdir + "/" + os.path.basename(prjdir) + ".mk", "w").write(makefile) - # Destination wizard mk file - makefile = open(os.path.join(const.DATA_DIR, "mktemplates/template_wiz.mk"), "r").read() - makefile = mkGenerator(project_info, makefile) - open(prjdir + "/" + os.path.basename(prjdir) + "_wiz.mk", "w").write(makefile) - # Destination main.c file - if not edit: - main = open(os.path.join(const.DATA_DIR, "srctemplates/main.c"), "r").read() - open(prjdir + "/main.c", "w").write(main) - # Files for selected plugins - relevants_files = {} - for plugin in project_info.info("OUTPUT"): - module = loadPlugin(plugin) - relevants_files[plugin] = module.createProject(project_info) - project_info.setInfo("RELEVANT_FILES", relevants_files) - def loadPlugin(plugin): """ Returns the given plugin module.