8edac2d3100291b1f4f95f0d79a3a10c88688c1a
[src/xds/xds-server.git] / scripts / agl / install-agl-sdks.sh
1 #!/bin/bash
2
3 . /etc/xdtrc
4
5 [ -z "$SDK_BASEURL" ] && SDK_BASEURL="http://iot.bzh/download/public/2017/XDS/sdk/"
6 [ -z "$XDT_SDK" ] && XDT_SDK=/xdt/sdk
7
8 # Support only poky_agl profile for now
9 PROFILE="poky-agl"
10
11 SDKS=$(curl -s ${SDK_BASEURL} | grep -oP  'href="[^"]*.sh"' | cut -d '"' -f 2)
12
13 usage() {
14     echo "Usage: $(basename $0) [-h|--help] [-noclean] [-a|--arch <arch name>] [-l|--list]"
15         echo "For example, arch name is: aarch64, armv7vehf or x86-64"
16         exit 1
17 }
18
19 getFile() {
20     arch=$1
21     for sdk in ${SDKS}; do
22         echo $sdk | grep "${PROFILE}.*${arch}.*.sh" > /dev/null 2>&1
23         if [ "$?" = "0" ]; then
24             echo $sdk
25             return 0
26         fi
27     done
28     echo "No SDK tarball found for arch $arch"
29     return 1
30 }
31
32 do_cleanup=true
33 FILE=""
34 ARCH=""
35 while [ $# -ne 0 ]; do
36     case $1 in
37         -h|--help|"")
38             usage
39             ;;
40         -a|--arch)
41             shift
42             ARCH=$1
43             FILE=$(getFile $ARCH)
44             if [ "$?" != 0 ]; then
45                 exit 1
46             fi
47             ;;
48         -l|--list)
49             echo "Available SDKs tarballs:"
50             for sdk in $SDKS; do echo " $sdk"; done
51             exit 0
52             ;;
53         -noclean)
54             do_cleanup=false
55             ;;
56         *)
57             echo "Invalid argument: $1"
58             usage
59             ;;
60     esac
61     shift
62 done
63
64 if [ "$FILE" = "" ]; then
65     echo "Option -a|--arch must be set"
66     usage
67 fi
68 if [ "$ARCH" = "" ]; then
69     echo "Unsupport architecture name !"
70     usage
71 fi
72
73 cd ${XDT_SDK} || exit 1
74
75 # Cleanup
76 trap "cleanExit" 0 1 2 15
77 cleanExit ()
78 {
79     if ($do_cleanup); then
80         [[ -f ${XDT_SDK}/${FILE} ]] && rm -f ${XDT_SDK}/${FILE}
81     fi
82 }
83
84 # Get SDK installer
85 if [ ! -f $FILE ]; then
86     wget "$SDK_BASEURL/$FILE" -O ${XDT_SDK}/${FILE} || exit 1
87 fi
88
89 # Retreive default install dir to extract version
90 offset=$(grep -na -m1 "^MARKER:$" $FILE | cut -d':' -f1)
91 eval $(head -n $offset $FILE | grep ^DEFAULT_INSTALL_DIR= )
92 VERSION=$(basename $DEFAULT_INSTALL_DIR)
93
94 DESTDIR=${XDT_SDK}/${PROFILE}/${VERSION}/${ARCH}
95
96 # Cleanup previous install
97 rm -rf ${DESTDIR} && mkdir -p ${DESTDIR} || exit 1
98
99 # Install sdk
100 chmod +x ${XDT_SDK}/${FILE}
101 ${XDT_SDK}/${FILE}  -y -d ${DESTDIR}