Fixed sdk uuid setting during install [SPEC-1377]
[src/xds/xds-server.git] / scripts / sdks / agl / db-update
index a222db9..a1f949e 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash
  ###########################################################################
-# Copyright 2017 IoT.bzh
+# Copyright 2017-2018 IoT.bzh
 #
 # author: Sebastien Douheret <sebastien@iot.bzh>
 #
 
 . $(dirname "$0")/_env-init.sh
 
-wget -q --connect-timeout=30 ${SDK_DATABASE} -O $1
+sdksDBFile=${1}
+
+[ "${sdksDBFile}" = "" ] && sdksDBFile=${SDK_ROOT_DIR}/sdks_latest.json
+
+# 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
+}
+
+# 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"