Added support of new image_url field
[src/xds/xds-server.git] / scripts / sdks / agl / get-sdk-info
index 8840bf0..12892ac 100755 (executable)
@@ -27,6 +27,7 @@ usage() {
 SDK_FILE=""
 MD5VAL=""
 URL=""
+UUID=""
 
 while [ $# -ne 0 ]; do
     case $1 in
@@ -45,6 +46,10 @@ while [ $# -ne 0 ]; do
             shift
             URL=$1
             ;;
+        --uuid)
+            shift
+            UUID=$1
+            ;;
         *)
             echo "Invalid argument: $1"
             usage
@@ -84,6 +89,7 @@ if [ "${SDK_FILE}" != "" ]; then
 
     filename=$(basename "${SDK_FILE}")
     sdkUrl=file://${SDK_FILE}
+    imageUrl=""
     sdkDate=$(stat -c %y "${SDK_FILE}")
     sdkSize=$(/bin/ls -sh "${SDK_FILE}" |cut -d' ' -f1)
 
@@ -91,6 +97,7 @@ elif [ "${URL}" != "" ]; then
 
     filename=$(basename "${URL}")
     sdkUrl=${URL}
+    imageUrl=""
     sdkDate=""
     sdkSize=""
 
@@ -113,15 +120,29 @@ fi
 profile=$(echo "${filename}" | sed -r 's/(.*)-glibc.*/\1/')
 version=$(echo "${filename}" | sed -r 's/.*toolchain-(.*).sh/\1/')
 arch=$(echo "${filename}" | sed -r 's/.*crosssdk-(.*)-toolchain.*/\1/')
+installPath=${SDK_ROOT_DIR}/${profile}/${version}/${arch}
 
 [ "${profile}" = "" ] && { echo "profile not set"; exit 7; }
 [ "${version}" = "" ] && { echo "version not set"; exit 8; }
 [ "${arch}" = "" ] && { echo " arch not set"; exit 9; }
 
-# Define a unique ID to be able to distinguish for example corei7-64 from qemux86-64
-uuid=$(echo "${sdkUrl}" | md5sum |cut -d' ' -f1)
+sdkName=${profile}_${arch}_${version}
 
-installPath=${SDK_ROOT_DIR}/${profile}/${version}/${arch}/${uuid}
+# Define a unique ID to be able to distinguish for example corei7-64 from qemux86-64
+if [ "${UUID}" = "" ]; then
+    curInstDir=$(ls -d "${installPath}/*" 2> /dev/null)
+    if [ -d "${curInstDir}" ]; then
+        UUID="basename ${curInstDir}"
+    elif [ "$URL" != "" ]; then
+        UUID=$(echo "$URL" | md5sum |cut -d' ' -f1)
+    elif [ "$filename" != "" ]; then
+        UUID=$(echo $(basename $filename) | md5sum |cut -d' ' -f1)
+    else
+        echo "UUID value must be specify using --uuid option."
+        exit 1
+    fi
+fi
+installPath="${installPath}/${UUID}"
 
 status="Not Installed"
 if [ -d "${installPath}" ]; then
@@ -129,15 +150,34 @@ if [ -d "${installPath}" ]; then
     [ "${envFile}" != "" ] && status="Installed"
 fi
 
+sdkDef=""
+if [ "${UUID}" != "" ]; then
+    sdkDef=$($(dirname "$0")/db-dump | jq '.[] | select(.uuid=="'${UUID}'")')
+elif [ "${URL}" != "" ]; then
+    sdkDef=$($(dirname "$0")/db-dump | jq '.[] | select(.url=="'${URL}'")')
+fi
+
+if [ "${sdkDef}" != "" ]; then
+    sdkName=$(echo "$sdkDef" | jq -r .name)
+    [ "$UUID" = "" ] && UUID=$(echo "$sdkDef" | jq -r .uuid)
+    [ "$sdkUrl" = "" ] && sdkUrl=$(echo "$sdkDef" | jq -r .url)
+    [ "$imageUrl" = "" ] && imageUrl=$(echo "$sdkDef" | jq -r .image_url)
+    [ "$sdkDate" = "" ] && sdkDate=$(echo "$sdkDef" | jq -r .date)
+    [ "$sdkSize" = "" ] && sdkSize=$(echo "$sdkDef" | jq -r .size)
+    [ "$MD5VAL" = "" ] && MD5VAL=$(echo "$sdkDef" | jq -r .md5sum)
+fi
+
 read -r -d '' res <<- EndOfMessage
 {
-    "name":         "${profile}_${arch}_${version}",
+    "name":         "${sdkName}",
+    "uuid":         "${UUID}",
     "description":  "AGL SDK ${arch} (version ${version})",
     "profile":      "${profile}",
     "version":      "${version}",
     "arch":         "${arch}",
     "path":         "${installPath}",
     "url":          "${sdkUrl}",
+    "image_url":    "${imageUrl}",
     "status":       "${status}",
     "date":         "${sdkDate}",
     "size":         "${sdkSize}",