From d8f30549bc6f14f41149722fa59be0ac498c5ec1 Mon Sep 17 00:00:00 2001 From: Richard Wackerbarth Date: Sun, 27 Sep 2015 20:51:21 -0500 Subject: [PATCH] Extend platforms with Boards.local.txt --- .../app/debug/LegacyTargetPlatform.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java b/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java index 9dd5bd48e..036860832 100644 --- a/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java +++ b/arduino-core/src/processing/app/debug/LegacyTargetPlatform.java @@ -70,8 +70,23 @@ public class LegacyTargetPlatform implements TargetPlatform { // Load boards try { - Map boardsPreferences = new PreferencesMap( - boardsFile).firstLevelMap(); + PreferencesMap bPrefs = new PreferencesMap( + boardsFile); + + // Allow overriding values in boards.txt. This allows changing + // boards.txt (e.g. to add user-specific items to a menu), without + // having to modify boards.txt (which, when running from git, + // prevents files being marked as changed). + File localboardsFile = new File(folder, "boards.local.txt"); + try { + if (localboardsFile.exists() && localboardsFile.canRead()) { + bPrefs.load(localboardsFile); + } + } catch (IOException e) { + throw new TargetPlatformException( + format(tr("Error loading {0}"), localboardsFile.getAbsolutePath()), e); + } + Map boardsPreferences = bPrefs.firstLevelMap(); // Create custom menus for this platform PreferencesMap menus = boardsPreferences.get("menu");