diff options
author | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-12-22 21:26:40 +0100 |
---|---|---|
committer | Sebastien Douheret <sebastien.douheret@iot.bzh> | 2017-12-22 21:29:59 +0100 |
commit | f1c182ede3c4aed0d6196d05b0a64ff93372e755 (patch) | |
tree | 2cf95732a06808aac8325bccb5199346b33165a2 /scripts/sdks/agl/add | |
parent | 285332c351777b74abca638b8b2a2cde3c68edc6 (diff) |
Added SDKs management support.
Signed-off-by: Sebastien Douheret <sebastien.douheret@iot.bzh>
Diffstat (limited to 'scripts/sdks/agl/add')
-rwxr-xr-x | scripts/sdks/agl/add | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/scripts/sdks/agl/add b/scripts/sdks/agl/add new file mode 100755 index 0000000..dcb3833 --- /dev/null +++ b/scripts/sdks/agl/add @@ -0,0 +1,103 @@ +#!/bin/bash + ########################################################################### +# Copyright 2017 IoT.bzh +# +# author: Sebastien Douheret <sebastien@iot.bzh> +# +# 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. +########################################################################### + +. $(dirname "$0")/_env-init.sh + +usage() { + echo "Usage: $(basename $0) [-h|--help] [-f|--file <sdk-filename>] [-u|--url <https_url>] [--force] [--no-clean]" + exit 1 +} + +TMPDIR="" +SDK_FILE="" +URL="" +do_cleanup=true +do_force=false +while [ $# -ne 0 ]; do + case $1 in + -f|--file) + shift + SDK_FILE=$1 + ;; + --force) + do_force=true + ;; + -u|--url) + shift + URL=$1 + ;; + -no-clean) + do_cleanup=false + ;; + -h|--help) + usage + ;; + *) + echo "Invalid argument: $1" + usage + ;; + esac + shift +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 + +# Cleanup +trap "cleanExit" 0 1 2 15 +cleanExit () +{ + if ($do_cleanup); then + [[ -d ${TMPDIR} ]] && rm -rf ${TMPDIR} + fi +} + +# 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 +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= ) + +PROFILE=$(basename $(dirname $DEFAULT_INSTALL_DIR)) +VERSION=$(basename $DEFAULT_INSTALL_DIR) +ARCH=$(echo "$SDK_FILE" | sed -r 's/.*crosssdk-(.*)-toolchain.*/\1/') + +[ "$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=${SDK_ROOT_DIR}/${PROFILE}/${VERSION}/${ARCH} + +[ -d ${DESTDIR} ] && [ "$do_force" != "true" ] && { echo "SDK already installed in $DESTDIR"; exit 1; } + +# Cleanup previous install +rm -rf ${DESTDIR} && mkdir -p ${DESTDIR} || exit 1 + +# Install sdk +chmod +x ${SDK_FILE} +${SDK_FILE} -y -d ${DESTDIR} |