diff options
author | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-06-16 13:45:55 +0200 |
---|---|---|
committer | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-06-16 13:45:55 +0200 |
commit | 9a937edf681a60ed65329a0ff86f419b7a8be155 (patch) | |
tree | fad5cb1a15270bb97007481bff59c3acbfbef423 /scripts | |
parent | ec22c45b4adaf530c66c053cf4e9408c4f791349 (diff) |
Improved script and add -file option.
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/xds-utils/install-agl-sdks.sh | 53 |
1 files changed, 37 insertions, 16 deletions
diff --git a/scripts/xds-utils/install-agl-sdks.sh b/scripts/xds-utils/install-agl-sdks.sh index 8edac2d..fd7a685 100755 --- a/scripts/xds-utils/install-agl-sdks.sh +++ b/scripts/xds-utils/install-agl-sdks.sh @@ -11,7 +11,7 @@ PROFILE="poky-agl" SDKS=$(curl -s ${SDK_BASEURL} | grep -oP 'href="[^"]*.sh"' | cut -d '"' -f 2) usage() { - echo "Usage: $(basename $0) [-h|--help] [-noclean] [-a|--arch <arch name>] [-l|--list]" + echo "Usage: $(basename $0) [-h|--help] [-clean] [-f|--file <agl-sdk-filename>] [-a|--arch <arch name>] [-l|--list]" echo "For example, arch name is: aarch64, armv7vehf or x86-64" exit 1 } @@ -29,7 +29,7 @@ getFile() { return 1 } -do_cleanup=true +do_cleanup=false FILE="" ARCH="" while [ $# -ne 0 ]; do @@ -37,21 +37,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" @@ -62,14 +62,31 @@ while [ $# -ne 0 ]; do done if [ "$FILE" = "" ]; then - echo "Option -a|--arch must be set" - usage + FILE=$(getFile $ARCH) + SDK_FILE=${XDT_SDK}/${FILE} + if [ "$?" != 0 ]; then + exit 1 + fi +elif [ ! -f $FILE ]; then + echo "SDK file not found: $FILE" + exit 1 +else + DIR=$(cd $(dirname $FILE); pwd) + 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,13 +94,14 @@ 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 @@ -91,11 +109,14 @@ offset=$(grep -na -m1 "^MARKER:$" $FILE | cut -d':' -f1) eval $(head -n $offset $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} |