Avoid duplicate SDK install dir - SPEC-1252
[src/xds/xds-server.git] / scripts / sdks / agl / add
index dcb3833..80a0487 100755 (executable)
@@ -17,7 +17,8 @@
 # limitations under the License.
 ###########################################################################
 
-. $(dirname "$0")/_env-init.sh
+SCRIPTS_DIR=$(cd $(dirname "$0") && pwd)
+. ${SCRIPTS_DIR}/_env-init.sh
 
 usage() {
     echo "Usage: $(basename $0) [-h|--help] [-f|--file <sdk-filename>] [-u|--url <https_url>] [--force] [--no-clean]"
@@ -27,10 +28,15 @@ usage() {
 TMPDIR=""
 SDK_FILE=""
 URL=""
+DEBUG_OPT=""
 do_cleanup=true
 do_force=false
 while [ $# -ne 0 ]; do
     case $1 in
+        --debug)
+            set -x
+            DEBUG_OPT="-D"
+            ;;
         -f|--file)
             shift
             SDK_FILE=$1
@@ -59,8 +65,8 @@ done
 [ "$SDK_FILE" = "" ] && [ "$URL" = "" ] && { echo "--file or --url option must be set"; exit 1; }
 
 # Create SDK root dir if needed
-[ ! -d ${SDK_ROOT_DIR} ] && mkdir -p ${SDK_ROOT_DIR}
-cd ${SDK_ROOT_DIR} || exit 1
+[ ! -d "${SDK_ROOT_DIR}" ] && mkdir -p "${SDK_ROOT_DIR}"
+cd "${SDK_ROOT_DIR}" || exit 1
 
 # Cleanup
 trap "cleanExit" 0 1 2 15
@@ -74,30 +80,33 @@ cleanExit ()
 # Download sdk
 if [ "$URL" != "" ]; then
     TMPDIR=$(mktemp -d)
-    SDK_FILE=${TMPDIR}/$(basename ${URL})
-    echo "Downloading $(basename ${SDK_FILE}) ..."
-    wget "$URL" -O "${SDK_FILE}" || exit 1
+    SDK_FILE=${TMPDIR}/$(basename "${URL}")
+    echo "Downloading $(basename "${SDK_FILE}") ..."
+    wget --no-check-certificate "$URL" -O "${SDK_FILE}" || exit 1
 fi
 
-# Retreive default install dir to extract version
-offset=$(grep -na -m1 "^MARKER:$" "${SDK_FILE}" | cut -d':' -f1)
-eval $(head -n $offset "${SDK_FILE}" | grep ^DEFAULT_INSTALL_DIR= )
+# Retreive SDK info
+sdkNfo=$(${SCRIPTS_DIR}/get-sdk-info --file "${SDK_FILE}")
+if [ "$?" != "0" ]; then
+    echo "$sdkNfo"
+    exit 1
+fi
 
-PROFILE=$(basename $(dirname $DEFAULT_INSTALL_DIR))
-VERSION=$(basename $DEFAULT_INSTALL_DIR)
-ARCH=$(echo "$SDK_FILE" | sed -r 's/.*crosssdk-(.*)-toolchain.*/\1/')
+PROFILE=$(echo "$sdkNfo" |grep -Eo '"profile"[^,]*' |cut -d'"' -f4)
+VERSION=$(echo "$sdkNfo" |grep -Eo '"version"[^,]*' |cut -d'"' -f4)
+ARCH=$(echo "$sdkNfo" |grep -Eo '"arch"[^,]*' |cut -d'"' -f4)
+DESTDIR=$(echo "$sdkNfo" |grep -Eo '"path"[^,]*' |cut -d'"' -f4)
 
 [ "$PROFILE" = "" ] && { echo "PROFILE is not set"; exit 1; }
 [ "$VERSION" = "" ] && { echo "VERSION is not set"; exit 1; }
 [ "$ARCH" = "" ] && { echo "ARCH is not set"; exit 1; }
+[ "$DESTDIR" = "" ] && { echo "DESTDIR (path) is not set"; exit 1; }
 
-DESTDIR=${SDK_ROOT_DIR}/${PROFILE}/${VERSION}/${ARCH}
-
-[ -d ${DESTDIR} ] && [ "$do_force" != "true" ] && { echo "SDK already installed in $DESTDIR"; exit 1; }
+[ -d "${DESTDIR}" ] && [ "$do_force" != "true" ] && { echo "SDK already installed in $DESTDIR"; exit 1; }
 
 # Cleanup previous install
-rm -rf ${DESTDIR} && mkdir -p ${DESTDIR} || exit 1
+rm -rf "${DESTDIR}" && mkdir -p "${DESTDIR}" || exit 1
 
 # Install sdk
-chmod +x ${SDK_FILE}
-${SDK_FILE} -y -d ${DESTDIR}
+chmod +x "${SDK_FILE}"
+${SDK_FILE} ${DEBUG_OPT} -y -d "${DESTDIR}" 2>&1