summaryrefslogtreecommitdiffstats
path: root/lib/crosssdk/sdks.go
diff options
context:
space:
mode:
authorSebastien Douheret <sebastien.douheret@iot.bzh>2017-11-29 08:54:00 +0100
committerSebastien Douheret <sebastien.douheret@iot.bzh>2017-11-29 11:10:30 +0100
commit2f7828d01f4c4ca2909f95f098627cd5475ed225 (patch)
treeb5e71920b813b95cae3e32044be08b99223348ec /lib/crosssdk/sdks.go
parent5caebfb4b7c3b73988f067082b219ce5b7f409ba (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.go126
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{}
-}