X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=lib%2Fxdsserver%2Fsdk.go;fp=lib%2Fxdsserver%2Fsdk.go;h=374fb12390710d8e85cc3b26f9d7c2201303a704;hb=0a53346ecd92e1281587c724631fdf76dc756fc7;hp=2736246bfdadafbeb591d9708b9c7490f194b23f;hpb=60a59bcfdb3c2404a468cc314b7afde85ee35e1b;p=src%2Fxds%2Fxds-server.git diff --git a/lib/xdsserver/sdk.go b/lib/xdsserver/sdk.go index 2736246..374fb12 100644 --- a/lib/xdsserver/sdk.go +++ b/lib/xdsserver/sdk.go @@ -64,9 +64,18 @@ type CrossSDK struct { } // ListCrossSDK List all available and installed SDK (call "db-dump" script) -func ListCrossSDK(scriptDir string, log *logrus.Logger) ([]xsapiv1.SDK, error) { +func ListCrossSDK(scriptDir string, update bool, log *logrus.Logger) ([]xsapiv1.SDK, error) { sdksList := []xsapiv1.SDK{} + // First update sdk DB when requested + if update { + out, err := UpdateSDKDb(scriptDir, log) + if err != nil { + log.Errorf("SDK DB update failure (%v): %v", err, out) + return sdksList, fmt.Errorf("Error while updating SDK DB (%v)", err) + } + } + // Retrieve SDKs list and info cmd := exec.Command(path.Join(scriptDir, scriptDbDump)) stdout, err := cmd.CombinedOutput() @@ -111,6 +120,15 @@ func GetSDKInfo(scriptDir, url, filename, md5sum string, log *logrus.Logger) (xs return sdk, nil } +// UpdateSDKDb Used db-update script to update SDK database +func UpdateSDKDb(scriptDir string, log *logrus.Logger) (string, error) { + args := []string{} + cmd := exec.Command(path.Join(scriptDir, scriptDbUpdate), args...) + stdout, err := cmd.CombinedOutput() + + return string(stdout), err +} + // NewCrossSDK creates a new instance of CrossSDK func NewCrossSDK(ctx *Context, sdk xsapiv1.SDK, scriptDir string) (*CrossSDK, error) { s := CrossSDK{