X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fxdsserver%2Fsdks.go;h=ee6a269372c53ac9116b86230ab56566a62ad742;hb=f870de867b43bfb1220067f81c11395438fb2863;hp=a18d94f5f8717d49a2d1c0557fd964e7c3c75585;hpb=2a7a112bbffcd41a3436c086f1910ea7a9c94744;p=src%2Fxds%2Fxds-server.git diff --git a/lib/xdsserver/sdks.go b/lib/xdsserver/sdks.go index a18d94f..ee6a269 100644 --- a/lib/xdsserver/sdks.go +++ b/lib/xdsserver/sdks.go @@ -38,8 +38,8 @@ type SDKs struct { stop chan struct{} // signals intentional stop } -// NewSDKs creates a new instance of SDKs -func NewSDKs(ctx *Context) (*SDKs, error) { +// SDKsConstructor creates a new instance of SDKs +func SDKsConstructor(ctx *Context) (*SDKs, error) { s := SDKs{ Context: ctx, Sdks: make(map[string]*CrossSDK), @@ -63,6 +63,12 @@ func NewSDKs(ctx *Context) (*SDKs, error) { return &s, err } + // Update SDK DB on startup by default (can be disable using config file) + update := true + if s.Config.FileConf.SdkDbUpdate != "startup" { + update = false + } + s.mutex.Lock() defer s.mutex.Unlock() @@ -73,10 +79,11 @@ func NewSDKs(ctx *Context) (*SDKs, error) { continue } - sdksList, err := ListCrossSDK(d, s.Log) + sdksList, err := ListCrossSDK(d, update, s.Log) if err != nil { // allow to use XDS even if error on list s.Log.Errorf("Cannot retrieve SDK list: %v", err) + sdksList, _ = ListCrossSDK(d, false, s.Log) } s.LogSillyf("'%s' SDKs list: %v", d, sdksList) @@ -211,7 +218,7 @@ func (s *SDKs) monitorSDKInstallation(watchingDirs []string) { sdk.Path = sdkDef.SetupFile // Emit Folder state change event - if err := s.events.Emit(xsapiv1.EVTSDKInstall, sdk, ""); err != nil { + if err := s.events.Emit(xsapiv1.EVTSDKAdd, sdk, ""); err != nil { s.Log.Warningf("Cannot notify SDK install: %v", err) } @@ -333,7 +340,7 @@ func (s *SDKs) Install(id, filepath string, force bool, timeout int, args []stri // Update path when not set if sdk.Path == "" { - sdkDef, err := GetSDKInfo(scriptDir, sdk.URL, "", "", s.Log) + sdkDef, err := GetSDKInfo(scriptDir, sdk.URL, "", "", sdk.UUID, s.Log) if err != nil || sdkDef.Path == "" { return nil, fmt.Errorf("cannot retrieve sdk path %v", err) } @@ -349,7 +356,7 @@ func (s *SDKs) Install(id, filepath string, force bool, timeout int, args []stri } for _, sf := range s.SdksFamilies { - sdkDef, err := GetSDKInfo(sf.ScriptsDir, "", sdkFilename, "", s.Log) + sdkDef, err := GetSDKInfo(sf.ScriptsDir, "", sdkFilename, "", "", s.Log) if err == nil { // OK, sdk found sdk = &sdkDef