X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBProject.py;h=36623e3a4752f5a092ae506cbe6e03f33b405c98;hb=f35b6066ecdeffcc8998dd566b5246bdcf43c548;hp=7cc1da496432688f9cb5d44ac3c26cd039203667;hpb=5b29bce24f96abdf3660e4c719cbf1ce94cfb8c5;p=bertos.git diff --git a/wizard/BProject.py b/wizard/BProject.py index 7cc1da49..36623e3a 100644 --- a/wizard/BProject.py +++ b/wizard/BProject.py @@ -122,6 +122,30 @@ class BProject(object): """ # NOTE: this method does nothing (for now). preset_path = os.path.join(self.infos["SOURCES_PATH"], const.PREDEFINED_BOARDS_DIR) + preset_tree = {} + if os.path.exists(preset_path): + preset_tree = self._loadProjectPresetTree(preset_path) + self.infos["PRESET_TREE"] = preset_tree + + def _loadProjectPresetTree(self, path): + _tree = {} + _tree['info'] = self._loadPresetInfo(os.path.join(path, const.PREDEFINED_BOARD_SPEC_FILE)) + _tree['info']['filename'] = os.path.basename(path) + _tree['info']['path'] = path + _tree['children'] = [] + entries = set(os.listdir(path)) + for entry in entries: + _path = os.path.join(path, entry) + if os.path.isdir(_path): + sub_entries = set(os.listdir(_path)) + if const.PREDEFINED_BOARD_SPEC_FILE in sub_entries: + _tree['children'].append(self._loadProjectPresetTree(_path)) + return _tree + + def _loadPresetInfo(self, preset_spec_file): + D = {} + execfile(preset_spec_file, {}, D) + return D def loadModuleData(self, edit=False): module_info_dict = {}