X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=scripts%2Fxds-utils%2Finstall-agl-sdks.sh;h=0491b24e5472618616d32b8914727e0142a9653a;hb=add6f928e6a95d14b511ebd59e0fba231747cdbb;hp=8edac2d3100291b1f4f95f0d79a3a10c88688c1a;hpb=472d4b34027f37b05f10d5558d28d6c6bca74ff2;p=src%2Fxds%2Fxds-server.git diff --git a/scripts/xds-utils/install-agl-sdks.sh b/scripts/xds-utils/install-agl-sdks.sh index 8edac2d..0491b24 100755 --- a/scripts/xds-utils/install-agl-sdks.sh +++ b/scripts/xds-utils/install-agl-sdks.sh @@ -1,18 +1,36 @@ #!/bin/bash + ########################################################################### +# Copyright 2017 IoT.bzh +# +# author: Sebastien Douheret +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################### . /etc/xdtrc -[ -z "$SDK_BASEURL" ] && SDK_BASEURL="http://iot.bzh/download/public/2017/XDS/sdk/" +[ -z "$SDK_BASEURL" ] && SDK_BASEURL="http://iot.bzh/download/public/XDS/sdk/" [ -z "$XDT_SDK" ] && XDT_SDK=/xdt/sdk # Support only poky_agl profile for now PROFILE="poky-agl" -SDKS=$(curl -s ${SDK_BASEURL} | grep -oP 'href="[^"]*.sh"' | cut -d '"' -f 2) +# Dynamically retreive SDKs (reduce timeout in case of iot website is not available) +SDKS=$(curl -s ${SDK_BASEURL} --connect-timeout 10 | grep -oP 'href="[^"]*.sh"' | cut -d '"' -f 2) || echo "WARNING: IoT.bzh download site not available." usage() { - echo "Usage: $(basename $0) [-h|--help] [-noclean] [-a|--arch ] [-l|--list]" - echo "For example, arch name is: aarch64, armv7vehf or x86-64" + echo "Usage: $(basename $0) [-h|--help] [-clean] [-f|--file ] [-a|--arch ] [-l|--list]" + echo "For example, arch name is: aarch64, armv7vehf or corei7-64" exit 1 } @@ -29,7 +47,7 @@ getFile() { return 1 } -do_cleanup=true +do_cleanup=false FILE="" ARCH="" while [ $# -ne 0 ]; do @@ -37,21 +55,21 @@ while [ $# -ne 0 ]; do -h|--help|"") usage ;; + -f|--file) + shift + FILE=$1 + ;; -a|--arch) shift ARCH=$1 - FILE=$(getFile $ARCH) - if [ "$?" != 0 ]; then - exit 1 - fi ;; -l|--list) echo "Available SDKs tarballs:" for sdk in $SDKS; do echo " $sdk"; done exit 0 ;; - -noclean) - do_cleanup=false + -clean) + do_cleanup=true ;; *) echo "Invalid argument: $1" @@ -61,15 +79,41 @@ while [ $# -ne 0 ]; do shift done +if [ "$ARCH" = "x86-64" ]; then + echo "Warning x86-64 architure name is deprecated, please use corei7-64 instead !" + exit 1 +fi + +[ ! -d ${XDT_SDK} ] && mkdir -p ${XDT_SDK} + if [ "$FILE" = "" ]; then - echo "Option -a|--arch must be set" - usage + FILE=$(getFile $ARCH) + if [ "$?" != "0" ]; then + echo "$FILE" + exit 1 + fi + SDK_FILE=${XDT_SDK}/${FILE} +elif [ ! -f "$FILE" ]; then + echo "SDK file not found: $FILE" + exit 1 +else + DIR=$(cd $(dirname $FILE); pwd) + FILE=$(basename $FILE) + SDK_FILE=${DIR}/${FILE} fi + if [ "$ARCH" = "" ]; then - echo "Unsupport architecture name !" + echo "Option -a|--arch must be set" usage fi +# Check that ARCH name matching SDK tarball filename +echo "$FILE" | grep "$ARCH" > /dev/null 2>&1 +if [ "$?" = "1" ]; then + echo "ARCH and provided filename doesn't match !" + exit 1 +fi + cd ${XDT_SDK} || exit 1 # Cleanup @@ -77,25 +121,29 @@ trap "cleanExit" 0 1 2 15 cleanExit () { if ($do_cleanup); then - [[ -f ${XDT_SDK}/${FILE} ]] && rm -f ${XDT_SDK}/${FILE} + [[ -f ${SDK_FILE} ]] && rm -f ${SDK_FILE} fi } # Get SDK installer -if [ ! -f $FILE ]; then - wget "$SDK_BASEURL/$FILE" -O ${XDT_SDK}/${FILE} || exit 1 +if [ ! -f "${SDK_FILE}" ]; then + do_cleanup=true + wget "$SDK_BASEURL/$FILE" -O "${SDK_FILE}" || exit 1 fi # Retreive default install dir to extract version -offset=$(grep -na -m1 "^MARKER:$" $FILE | cut -d':' -f1) -eval $(head -n $offset $FILE | grep ^DEFAULT_INSTALL_DIR= ) +offset=$(grep -na -m1 "^MARKER:$" "${SDK_FILE}" | cut -d':' -f1) +eval $(head -n $offset "${SDK_FILE}" | grep ^DEFAULT_INSTALL_DIR= ) VERSION=$(basename $DEFAULT_INSTALL_DIR) +[ "$PROFILE" = "" ] && { echo "PROFILE is not set"; exit 1; } +[ "$VERSION" = "" ] && { echo "VERSION is not set"; exit 1; } + DESTDIR=${XDT_SDK}/${PROFILE}/${VERSION}/${ARCH} # Cleanup previous install rm -rf ${DESTDIR} && mkdir -p ${DESTDIR} || exit 1 # Install sdk -chmod +x ${XDT_SDK}/${FILE} -${XDT_SDK}/${FILE} -y -d ${DESTDIR} +chmod +x ${SDK_FILE} +${SDK_FILE} -y -d ${DESTDIR}