Intel SDK is now named corei7-64.
[src/xds/xds-server.git] / scripts / xds-utils / 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] [-clean] [-f|--file <agl-sdk-filename>] [-a|--arch <arch name>] [-l|--list]"
15         echo "For example, arch name is: aarch64, armv7vehf or corei7-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=false
33 FILE=""
34 ARCH=""
35 while [ $# -ne 0 ]; do
36     case $1 in
37         -h|--help|"")
38             usage
39             ;;
40         -f|--file)
41             shift
42             FILE=$1
43             ;;
44         -a|--arch)
45             shift
46             ARCH=$1
47             ;;
48         -l|--list)
49             echo "Available SDKs tarballs:"
50             for sdk in $SDKS; do echo " $sdk"; done
51             exit 0
52             ;;
53         -clean)
54             do_cleanup=true
55             ;;
56         *)
57             echo "Invalid argument: $1"
58             usage
59             ;;
60     esac
61     shift
62 done
63
64 if [ "$ARCH" = "x86-64" ]; then
65     echo "Warning x86-64 architure name is deprecated, please use corei7-64 instead !"
66     exit 1
67 fi
68
69 [ ! -d ${XDT_SDK} ] && mkdir -p ${XDT_SDK}
70
71 if [ "$FILE" = "" ]; then
72     FILE=$(getFile $ARCH)
73     if [ "$?" != "0" ]; then
74         echo "$FILE"
75         exit 1
76     fi
77     SDK_FILE=${XDT_SDK}/${FILE}
78 elif [ ! -f $FILE ]; then
79     echo "SDK file not found: $FILE"
80     exit 1
81 else
82     DIR=$(cd $(dirname $FILE); pwd)
83     SDK_FILE=${DIR}/${FILE}
84 fi
85
86 if [ "$ARCH" = "" ]; then
87     echo "Option -a|--arch must be set"
88     usage
89 fi
90
91 # Check that ARCH name matching SDK tarball filename
92 echo "$FILE" | grep "$ARCH" > /dev/null 2>&1
93 if [ "$?" = "1" ]; then
94     echo "ARCH and provided filename doesn't match !"
95     exit 1
96 fi
97
98 cd ${XDT_SDK} || exit 1
99
100 # Cleanup
101 trap "cleanExit" 0 1 2 15
102 cleanExit ()
103 {
104     if ($do_cleanup); then
105         [[ -f ${SDK_FILE} ]] && rm -f ${SDK_FILE}
106     fi
107 }
108
109 # Get SDK installer
110 if [ ! -f ${SDK_FILE} ]; then
111     do_cleanup=true
112     wget "$SDK_BASEURL/$FILE" -O ${SDK_FILE} || exit 1
113 fi
114
115 # Retreive default install dir to extract version
116 offset=$(grep -na -m1 "^MARKER:$" ${SDK_FILE} | cut -d':' -f1)
117 eval $(head -n $offset ${SDK_FILE} | grep ^DEFAULT_INSTALL_DIR= )
118 VERSION=$(basename $DEFAULT_INSTALL_DIR)
119
120 [ "$PROFILE" = "" ] && { echo "PROFILE is not set"; exit 1; }
121 [ "$VERSION" = "" ] && { echo "VERSION is not set"; exit 1; }
122
123 DESTDIR=${XDT_SDK}/${PROFILE}/${VERSION}/${ARCH}
124
125 # Cleanup previous install
126 rm -rf ${DESTDIR} && mkdir -p ${DESTDIR} || exit 1
127
128 # Install sdk
129 chmod +x ${SDK_FILE}
130 ${SDK_FILE}  -y -d ${DESTDIR}