3535import java .util .ArrayList ;
3636import java .util .List ;
3737import java .util .Map ;
38+ import java .io .File ;
3839
3940import cc .arduino .packages .discoverers .PluggableDiscovery ;
4041import cc .arduino .packages .discoverers .serial .SerialDiscovery ;
@@ -65,6 +66,10 @@ public DiscoveryManager(Map<String, TargetPackage> packages) {
6566 for (TargetPlatform platform : targetPackage .getPlatforms ().values ()) {
6667 //System.out.println("installed: "+platform);
6768 PreferencesMap prefs = platform .getPreferences ().subTree ("discovery" );
69+ PreferencesMap pathPrefs = new PreferencesMap ();
70+ File platformFolder = platform .getFolder ();
71+ pathPrefs .put ("runtime.platform.path" , platformFolder .getAbsolutePath ());
72+ pathPrefs .put ("runtime.hardware.path" , platformFolder .getParentFile ().getAbsolutePath ());
6873 for (String discoveryName : prefs .firstLevelMap ().keySet ()) {
6974 PreferencesMap discoveryPrefs = prefs .subTree (discoveryName );
7075
@@ -76,9 +81,11 @@ public DiscoveryManager(Map<String, TargetPackage> packages) {
7681 try {
7782 if (PreferencesData .getBoolean ("discovery.debug" )) {
7883 System .out .println ("found discovery: " + discoveryName + " -> " + pattern );
84+ System .out .println ("with pathnames -> " + pathPrefs );
7985 System .out .println ("with preferencess -> " + discoveryPrefs );
8086 }
8187 pattern = StringReplacer .replaceFromMapping (pattern , PreferencesData .getMap ());
88+ pattern = StringReplacer .replaceFromMapping (pattern , pathPrefs );
8289 String [] cmd = StringReplacer .formatAndSplit (pattern , discoveryPrefs );
8390 discoverers .add (new PluggableDiscovery (discoveryName , cmd ));
8491 } catch (Exception e ) {
0 commit comments