# 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]"
TMPDIR=""
SDK_FILE=""
URL=""
+DEBUG_OPT=""
+UUID=""
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
shift
URL=$1
;;
+ --uuid)
+ shift
+ UUID=$1
+ ;;
-no-clean)
do_cleanup=false
;;
[ "$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
# Download sdk
if [ "$URL" != "" ]; then
TMPDIR=$(mktemp -d)
- SDK_FILE=${TMPDIR}/$(basename ${URL})
- echo "Downloading $(basename ${SDK_FILE}) ..."
+ 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= )
+# Compute uuid when needed
+if [ "$UUID" = "" ] && [ "$URL" != "" ]; then
+ UUID=$(echo "$URL" | md5sum |cut -d' ' -f1)
+elif [ "$SDK_FILE" != "" ]; then
+ UUID=$(echo $(basename $SDK_FILE) | md5sum |cut -d' ' -f1)
+else
+ echo "UUID value must be specify using --uuid option."
+ exit 1
+fi
-PROFILE=$(basename $(dirname $DEFAULT_INSTALL_DIR))
-VERSION=$(basename $DEFAULT_INSTALL_DIR)
-ARCH=$(echo "$SDK_FILE" | sed -r 's/.*crosssdk-(.*)-toolchain.*/\1/')
+# Retreive SDK info
+sdkNfo=$(${SCRIPTS_DIR}/get-sdk-info --file "${SDK_FILE}" --uuid "${UUID}")
+if [ "$?" != "0" ]; then
+ echo "$sdkNfo"
+ exit 1
+fi
+
+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