Fixed sdk uuid setting during install [SPEC-1377]
[src/xds/xds-server.git] / scripts / sdks / agl / db-update
index 4f8d933..a1f949e 100755 (executable)
@@ -23,6 +23,29 @@ sdksDBFile=${1}
 
 [ "${sdksDBFile}" = "" ] && sdksDBFile=${SDK_ROOT_DIR}/sdks_latest.json
 
-[ -f "${sdksDBFile}" ] && mv "${sdksDBFile}" "${sdksDBFile}.old"
+# Restore previous file on error
+exitCode=0
+trap "OnExit" 0 1 2 15
+OnExit ()
+{
+    if [ "${exitCode}" != "0" ] &&  [ -f "${sdksDBFile}.old" ]; then
+        echo "Error detected, restore previous database version"
+        mv "${sdksDBFile}.old" "${sdksDBFile}"
+    fi
+}
 
-wget -q --connect-timeout=30 "${SDK_DATABASE}" -O "${sdksDBFile}"
+# Create destination directory when needed
+instDir=$(dirname "${sdksDBFile}")
+[ ! -d "${instDir}" ] && mkdir -p "${instDir}"
+
+# Get database
+echo "Updating AGL SDK database..."
+wget --no-verbose --connect-timeout=30 "${SDK_DATABASE}" -O "${sdksDBFile}.new" || exit $?
+
+# Backup previous file
+[ -f "${sdksDBFile}" ] && cp -f "${sdksDBFile}" "${sdksDBFile}.old"
+
+mv --update "${sdksDBFile}.new" "${sdksDBFile}"
+[ -f "${sdksDBFile}.new" ] && rm -f "${sdksDBFile}.new"
+
+echo "Done: AGL SDK database is up-to-date"