func loadBoards(boards map[string]*types.Board, packageId string, platformId string, folder string, logger i18n.Logger) error { properties, err := props.Load(filepath.Join(folder, constants.FILE_BOARDS_TXT), logger) if err != nil { return utils.WrapError(err) } localProperties, err := props.SafeLoad(filepath.Join(folder, constants.FILE_BOARDS_LOCAL_TXT), logger) if err != nil { return utils.WrapError(err) } properties = utils.MergeMapsOfStrings(properties, localProperties) propertiesByBoardId := props.FirstLevelOf(properties) delete(propertiesByBoardId, constants.BOARD_PROPERTIES_MENU) for boardId, properties := range propertiesByBoardId { properties[constants.ID] = boardId board := getOrCreateBoard(boards, boardId) board.Properties = utils.MergeMapsOfStrings(board.Properties, properties) boards[boardId] = board } return nil }
func loadPlatform(targetPlatform *types.Platform, packageId string, folder string, logger i18n.Logger) error { _, err := os.Stat(filepath.Join(folder, constants.FILE_BOARDS_TXT)) if err != nil && !os.IsNotExist(err) { return utils.WrapError(err) } if os.IsNotExist(err) { return nil } targetPlatform.Folder = folder err = loadBoards(targetPlatform.Boards, packageId, targetPlatform.PlatformId, folder, logger) if err != nil { return utils.WrapError(err) } assignDefaultBoardToPlatform(targetPlatform) platformTxt, err := props.SafeLoad(filepath.Join(folder, constants.FILE_PLATFORM_TXT), logger) if err != nil { return utils.WrapError(err) } localPlatformProperties, err := props.SafeLoad(filepath.Join(folder, constants.FILE_PLATFORM_LOCAL_TXT), logger) if err != nil { return utils.WrapError(err) } targetPlatform.Properties = utils.MergeMapsOfStrings(make(map[string]string), targetPlatform.Properties, platformTxt, localPlatformProperties) programmersProperties, err := props.SafeLoad(filepath.Join(folder, constants.FILE_PROGRAMMERS_TXT), logger) if err != nil { return utils.WrapError(err) } targetPlatform.Programmers = utils.MergeMapsOfMapsOfStrings(make(map[string]map[string]string), targetPlatform.Programmers, props.FirstLevelOf(programmersProperties)) return nil }