diff options
author | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-11-29 08:54:00 +0100 |
---|---|---|
committer | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-11-29 11:10:30 +0100 |
commit | 2f7828d01f4c4ca2909f95f098627cd5475ed225 (patch) | |
tree | b5e71920b813b95cae3e32044be08b99223348ec /lib/crosssdk/sdks.go | |
parent | 5caebfb4b7c3b73988f067082b219ce5b7f409ba (diff) |
Refit source files to have a public xs-apiv1 lib package.
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
Diffstat (limited to 'lib/crosssdk/sdks.go')
-rw-r--r-- | lib/crosssdk/sdks.go | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/lib/crosssdk/sdks.go b/lib/crosssdk/sdks.go deleted file mode 100644 index a3da184..0000000 --- a/lib/crosssdk/sdks.go +++ /dev/null @@ -1,126 +0,0 @@ -package crosssdk - -import ( - "fmt" - "path" - "path/filepath" - "strings" - "sync" - - "github.com/Sirupsen/logrus" - common "github.com/iotbzh/xds-common/golib" - "github.com/iotbzh/xds-server/lib/xdsconfig" -) - -// SDKs List of installed SDK -type SDKs struct { - Sdks map[string]*SDK - - mutex sync.Mutex -} - -// Init creates a new instance of Syncthing -func Init(cfg *xdsconfig.Config, log *logrus.Logger) (*SDKs, error) { - s := SDKs{ - Sdks: make(map[string]*SDK), - } - - // Retrieve installed sdks - sdkRD := cfg.FileConf.SdkRootDir - - if common.Exists(sdkRD) { - - // Assume that SDK install tree is <rootdir>/<profile>/<version>/<arch> - dirs, err := filepath.Glob(path.Join(sdkRD, "*", "*", "*")) - if err != nil { - log.Debugf("Error while retrieving SDKs: dir=%s, error=%s", sdkRD, err.Error()) - return &s, err - } - s.mutex.Lock() - defer s.mutex.Unlock() - - for _, d := range dirs { - if !common.IsDir(d) { - continue - } - sdk, err := NewCrossSDK(d) - if err != nil { - log.Debugf("Error while processing SDK dir=%s, err=%s", d, err.Error()) - continue - } - s.Sdks[sdk.ID] = sdk - } - } - - log.Debugf("SDKs: %d cross sdks found", len(s.Sdks)) - - return &s, nil -} - -// ResolveID Complete an SDK ID (helper for user that can use partial ID value) -func (s *SDKs) ResolveID(id string) (string, error) { - if id == "" { - return "", nil - } - - match := []string{} - for iid := range s.Sdks { - if strings.HasPrefix(iid, id) { - match = append(match, iid) - } - } - - if len(match) == 1 { - return match[0], nil - } else if len(match) == 0 { - return id, fmt.Errorf("Unknown sdk id") - } - return id, fmt.Errorf("Multiple sdk IDs found with provided prefix: " + id) -} - -// Get returns an SDK from id -func (s *SDKs) Get(id string) *SDK { - s.mutex.Lock() - defer s.mutex.Unlock() - - sc, exist := s.Sdks[id] - if !exist { - return nil - } - return sc -} - -// GetAll returns all existing SDKs -func (s *SDKs) GetAll() []SDK { - s.mutex.Lock() - defer s.mutex.Unlock() - res := []SDK{} - for _, v := range s.Sdks { - res = append(res, *v) - } - return res -} - -// GetEnvCmd returns the command used to initialized the environment for an SDK -func (s *SDKs) GetEnvCmd(id string, defaultID string) []string { - if id == "" && defaultID == "" { - // no env cmd - return []string{} - } - - s.mutex.Lock() - defer s.mutex.Unlock() - - if iid, err := s.ResolveID(id); err == nil { - if sdk, exist := s.Sdks[iid]; exist { - return sdk.GetEnvCmd() - } - } - - if sdk, exist := s.Sdks[defaultID]; defaultID != "" && exist { - return sdk.GetEnvCmd() - } - - // Return default env that may be empty - return []string{} -} |