435aae6b738ba00db8dc0c6590254f9e990b7114
[src/xds/xds-server.git] / lib / crosssdk / sdks.go
1 package crosssdk
2
3 import (
4         "path"
5         "path/filepath"
6
7         "github.com/Sirupsen/logrus"
8         "github.com/iotbzh/xds-server/lib/common"
9         "github.com/iotbzh/xds-server/lib/xdsconfig"
10 )
11
12 // SDKs List of installed SDK
13 type SDKs []*SDK
14
15 // Init creates a new instance of Syncthing
16 func Init(cfg *xdsconfig.Config, log *logrus.Logger) (*SDKs, error) {
17         s := SDKs{}
18
19         // Retrieve installed sdks
20         sdkRD := cfg.FileConf.SdkRootDir
21
22         if common.Exists(sdkRD) {
23
24                 // Assume that SDK install tree is <rootdir>/<profile>/<version>/<arch>
25                 dirs, err := filepath.Glob(path.Join(sdkRD, "*", "*", "*"))
26                 if err != nil {
27                         log.Debugf("Error while retrieving SDKs: dir=%s, error=%s", sdkRD, err.Error())
28                         return &s, err
29                 }
30                 for _, d := range dirs {
31                         sdk, err := NewCrossSDK(d)
32                         if err != nil {
33                                 log.Debugf("Error while processing SDK dir=%s, err=%s", d, err.Error())
34                         }
35                         s = append(s, sdk)
36                 }
37         }
38         return &s, nil
39 }