@@ -200,9 +200,30 @@ func UpdateIndex(ctx context.Context, req *rpc.UpdateIndexReq, downloadCB Downlo
200200 }
201201
202202 indexpath := paths .New (configuration .Settings .GetString ("directories.Data" ))
203+ json_paths := []string {}
204+ json_paths = append (json_paths , configuration .Settings .GetStringSlice ("board_manager.additional_paths" )... )
205+ for _ , x := range json_paths {
206+ //path_to_json, err := paths.New(x).Abs()
207+ path_to_json := indexpath .Join (x )
208+
209+ if _ , err := packageindex .LoadIndex (path_to_json ); err != nil {
210+ return nil , fmt .Errorf ("invalid package index in %s: %s" , path_to_json , err )
211+ }
212+
213+ if err := indexpath .MkdirAll (); err != nil {
214+ return nil , fmt .Errorf ("can't create data directory %s: %s" , indexpath , err )
215+ }
216+
217+ //may not be necessary
218+ //coreIndexPath := indexpath.Join(path.Base(path_to_json.Path))
219+ //if err := tmp.CopyTo(coreIndexPath); err != nil {
220+ // return nil, fmt.Errorf("saving downloaded index %s: %s", path_to_json, err)
221+ //}
222+ }
203223 urls := []string {globals .DefaultIndexURL }
204224 urls = append (urls , configuration .Settings .GetStringSlice ("board_manager.additional_urls" )... )
205225 for _ , u := range urls {
226+ logrus .Info ("URL: %s" , u )
206227 URL , err := url .Parse (u )
207228 if err != nil {
208229 logrus .Warnf ("unable to parse additional URL: %s" , u )
@@ -238,7 +259,7 @@ func UpdateIndex(ctx context.Context, req *rpc.UpdateIndexReq, downloadCB Downlo
238259 // Check for signature
239260 var tmpSig * paths.Path
240261 var coreIndexSigPath * paths.Path
241- if URL .Hostname () == "downloads.arduino.cc " {
262+ if URL .Hostname () == "downloads.WRONG.net " {
242263 URLSig , err := url .Parse (URL .String ())
243264 if err != nil {
244265 return nil , fmt .Errorf ("parsing url for index signature check: %s" , err )
@@ -649,6 +670,19 @@ func createInstance(ctx context.Context, getLibOnly bool) (*createInstanceResult
649670 }
650671 }
651672
673+ indexpath := paths .New (configuration .Settings .GetString ("directories.Data" ))
674+ json_paths := []string {}
675+ json_paths = append (json_paths , configuration .Settings .GetStringSlice ("board_manager.additional_paths" )... )
676+ for _ , x := range json_paths {
677+ //path_to_json, err := paths.New(x).Abs()
678+ path_to_json := indexpath .Join (x )
679+
680+ _ , err := res .Pm .LoadPackageIndexFromFile (path_to_json )
681+ if err != nil {
682+ res .PlatformIndexErrors = append (res .PlatformIndexErrors , err .Error ())
683+ }
684+ }
685+
652686 if err := res .Pm .LoadHardware (); err != nil {
653687 return res , fmt .Errorf ("error loading hardware packages: %s" , err )
654688 }
0 commit comments