e9a9fd175b4b6255ba2a0e23f12aa1f8cbe55f69
[src/xds/xds-server.git] / scripts / sdks / agl / add
1 #!/bin/bash
2  ###########################################################################
3 # Copyright 2017 IoT.bzh
4 #
5 # author: Sebastien Douheret <sebastien@iot.bzh>
6 #
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #     http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 ###########################################################################
19
20 . $(dirname "$0")/_env-init.sh
21
22 usage() {
23     echo "Usage: $(basename $0) [-h|--help] [-f|--file <sdk-filename>] [-u|--url <https_url>] [--force] [--no-clean]"
24         exit 1
25 }
26
27 TMPDIR=""
28 SDK_FILE=""
29 URL=""
30 do_cleanup=true
31 do_force=false
32 while [ $# -ne 0 ]; do
33     case $1 in
34         -f|--file)
35             shift
36             SDK_FILE=$1
37             ;;
38         --force)
39             do_force=true
40             ;;
41         -u|--url)
42             shift
43             URL=$1
44             ;;
45         -no-clean)
46             do_cleanup=false
47             ;;
48         -h|--help)
49             usage
50             ;;
51         *)
52             echo "Invalid argument: $1"
53             usage
54             ;;
55     esac
56     shift
57 done
58
59 [ "$SDK_FILE" = "" ] && [ "$URL" = "" ] && { echo "--file or --url option must be set"; exit 1; }
60
61 # Create SDK root dir if needed
62 [ ! -d ${SDK_ROOT_DIR} ] && mkdir -p ${SDK_ROOT_DIR}
63 cd ${SDK_ROOT_DIR} || exit 1
64
65 # Cleanup
66 trap "cleanExit" 0 1 2 15
67 cleanExit ()
68 {
69     if ($do_cleanup); then
70         [[ -d ${TMPDIR} ]] && rm -rf ${TMPDIR}
71     fi
72 }
73
74 # Download sdk
75 if [ "$URL" != "" ]; then
76     TMPDIR=$(mktemp -d)
77     SDK_FILE=${TMPDIR}/$(basename ${URL})
78     echo "Downloading $(basename ${SDK_FILE}) ..."
79     wget --no-check-certificate "$URL" -O "${SDK_FILE}" || exit 1
80 fi
81
82 # Retreive default install dir to extract version
83 offset=$(grep -na -m1 "^MARKER:$" "${SDK_FILE}" | cut -d':' -f1)
84 eval $(head -n $offset "${SDK_FILE}" | grep ^DEFAULT_INSTALL_DIR= )
85
86 PROFILE=$(basename $(dirname $DEFAULT_INSTALL_DIR))
87 VERSION=$(basename $DEFAULT_INSTALL_DIR)
88 ARCH=$(echo "$SDK_FILE" | sed -r 's/.*crosssdk-(.*)-toolchain.*/\1/')
89
90 [ "$PROFILE" = "" ] && { echo "PROFILE is not set"; exit 1; }
91 [ "$VERSION" = "" ] && { echo "VERSION is not set"; exit 1; }
92 [ "$ARCH" = "" ] && { echo "ARCH is not set"; exit 1; }
93
94 DESTDIR=${SDK_ROOT_DIR}/${PROFILE}/${VERSION}/${ARCH}
95
96 [ -d ${DESTDIR} ] && [ "$do_force" != "true" ] && { echo "SDK already installed in $DESTDIR"; exit 1; }
97
98 # Cleanup previous install
99 rm -rf ${DESTDIR} && mkdir -p ${DESTDIR} || exit 1
100
101 # Install sdk
102 chmod +x ${SDK_FILE}
103 ${SDK_FILE} -y -d ${DESTDIR}