35
35
import java .util .ArrayList ;
36
36
import java .util .List ;
37
37
import java .util .Map ;
38
+ import java .io .File ;
38
39
39
40
import cc .arduino .packages .discoverers .PluggableDiscovery ;
40
41
import cc .arduino .packages .discoverers .serial .SerialDiscovery ;
@@ -65,6 +66,10 @@ public DiscoveryManager(Map<String, TargetPackage> packages) {
65
66
for (TargetPlatform platform : targetPackage .getPlatforms ().values ()) {
66
67
//System.out.println("installed: "+platform);
67
68
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 ());
68
73
for (String discoveryName : prefs .firstLevelMap ().keySet ()) {
69
74
PreferencesMap discoveryPrefs = prefs .subTree (discoveryName );
70
75
@@ -76,9 +81,11 @@ public DiscoveryManager(Map<String, TargetPackage> packages) {
76
81
try {
77
82
if (PreferencesData .getBoolean ("discovery.debug" )) {
78
83
System .out .println ("found discovery: " + discoveryName + " -> " + pattern );
84
+ System .out .println ("with pathnames -> " + pathPrefs );
79
85
System .out .println ("with preferencess -> " + discoveryPrefs );
80
86
}
81
87
pattern = StringReplacer .replaceFromMapping (pattern , PreferencesData .getMap ());
88
+ pattern = StringReplacer .replaceFromMapping (pattern , pathPrefs );
82
89
String [] cmd = StringReplacer .formatAndSplit (pattern , discoveryPrefs );
83
90
discoverers .add (new PluggableDiscovery (discoveryName , cmd ));
84
91
} catch (Exception e ) {
0 commit comments