From 472d4b34027f37b05f10d5558d28d6c6bca74ff2 Mon Sep 17 00:00:00 2001 From: Sebastien Douheret Date: Sun, 28 May 2017 14:38:39 +0200 Subject: Add script to get xds-agent tarballs. Signed-off-by: Sebastien Douheret --- Makefile | 6 +- README.md | 8 +-- scripts/agl/install-agl-sdks.sh | 101 ---------------------------------- scripts/get-syncthing.sh | 58 ------------------- scripts/xds-server-start.sh | 70 +++++++++++++++++++++++ scripts/xds-server-stop.sh | 18 ++++++ scripts/xds-start-server.sh | 51 ----------------- scripts/xds-stop-server.sh | 18 ------ scripts/xds-utils/get-syncthing.sh | 58 +++++++++++++++++++ scripts/xds-utils/get-xds-agent.sh | 57 +++++++++++++++++++ scripts/xds-utils/install-agl-sdks.sh | 101 ++++++++++++++++++++++++++++++++++ 11 files changed, 311 insertions(+), 235 deletions(-) delete mode 100755 scripts/agl/install-agl-sdks.sh delete mode 100755 scripts/get-syncthing.sh create mode 100755 scripts/xds-server-start.sh create mode 100755 scripts/xds-server-stop.sh delete mode 100755 scripts/xds-start-server.sh delete mode 100755 scripts/xds-stop-server.sh create mode 100755 scripts/xds-utils/get-syncthing.sh create mode 100755 scripts/xds-utils/get-xds-agent.sh create mode 100755 scripts/xds-utils/install-agl-sdks.sh diff --git a/Makefile b/Makefile index bcaab92..8b2df13 100644 --- a/Makefile +++ b/Makefile @@ -87,12 +87,12 @@ webapp/install: .PHONY: scripts scripts: - @mkdir -p $(LOCAL_BINDIR) && cp -rf scripts/xds-start-server.sh scripts/agl $(LOCAL_BINDIR) + @mkdir -p $(LOCAL_BINDIR) && cp -rf scripts/xds-server-st*.sh scripts/xds-utils $(LOCAL_BINDIR) .PHONY: install install: @test -e $(LOCAL_BINDIR)/xds-server -a -d webapp/dist || { echo "Please execute first: make all\n"; exit 1; } - @test -e $(LOCAL_BINDIR)/xds-start-server.sh -a -d $(LOCAL_BINDIR)/agl || { echo "Please execute first: make all\n"; exit 1; } + @test -e $(LOCAL_BINDIR)/xds-server-start.sh -a -d $(LOCAL_BINDIR)/xds-utils || { echo "Please execute first: make all\n"; exit 1; } @test -e $(LOCAL_BINDIR)/syncthing -a -e $(LOCAL_BINDIR)/syncthing-inotify || { echo "Please execute first: make all\n"; exit 1; } mkdir -p $(INSTALL_DIR) \ && cp -a $(LOCAL_BINDIR)/* $(INSTALL_DIR) @@ -114,7 +114,7 @@ tools/syncthing: DESTDIR=$(LOCAL_TOOLSDIR) \ SYNCTHING_VERSION=$(SYNCTHING_VERSION) \ SYNCTHING_INOTIFY_VERSION=$(SYNCTHING_INOTIFY_VERSION) \ - ./scripts/get-syncthing.sh; } + ./scripts/xds-utils/get-syncthing.sh; } .PHONY: tools/syncthing/copytobin: diff --git a/README.md b/README.md index 9b4e952..15ac8f6 100644 --- a/README.md +++ b/README.md @@ -79,14 +79,14 @@ Supported fields in configuration file are: ## Start-up -Use `xds-start-server.sh` script to start all requested tools +Use `xds-server-start.sh` script to start all requested tools ```bash -/usr/local/bin/xds-start-server.sh +/usr/local/bin/xds-server-start.sh ``` >**NOTE** you can define some environment variables to setup for example config file `XDS_CONFFILE` or change logs directory `LOGDIR`. -See head section of `xds-start-server.sh` file to see all configurable variables. +See head section of `xds-server-start.sh` file to see all configurable variables. ## Install XDS-server in AGL SDK docker container @@ -133,7 +133,7 @@ This container exposes following ports: Now start xds-server inside this container: ```bash > ssh -p 2222 devel@localhost -[15:59:58] devel@agl-worker-seb-laptop-0-seb:~$ /usr/local/bin/xds-start-server.sh +[15:59:58] devel@agl-worker-seb-laptop-0-seb:~$ /usr/local/bin/xds-server-start.sh ### Configuration in config.json: { "webAppDir": "/usr/local/bin/www-xds-server", diff --git a/scripts/agl/install-agl-sdks.sh b/scripts/agl/install-agl-sdks.sh deleted file mode 100755 index 8edac2d..0000000 --- a/scripts/agl/install-agl-sdks.sh +++ /dev/null @@ -1,101 +0,0 @@ -#!/bin/bash - -. /etc/xdtrc - -[ -z "$SDK_BASEURL" ] && SDK_BASEURL="http://iot.bzh/download/public/2017/XDS/sdk/" -[ -z "$XDT_SDK" ] && XDT_SDK=/xdt/sdk - -# Support only poky_agl profile for now -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 ] [-l|--list]" - echo "For example, arch name is: aarch64, armv7vehf or x86-64" - exit 1 -} - -getFile() { - arch=$1 - for sdk in ${SDKS}; do - echo $sdk | grep "${PROFILE}.*${arch}.*.sh" > /dev/null 2>&1 - if [ "$?" = "0" ]; then - echo $sdk - return 0 - fi - done - echo "No SDK tarball found for arch $arch" - return 1 -} - -do_cleanup=true -FILE="" -ARCH="" -while [ $# -ne 0 ]; do - case $1 in - -h|--help|"") - usage - ;; - -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 - ;; - *) - echo "Invalid argument: $1" - usage - ;; - esac - shift -done - -if [ "$FILE" = "" ]; then - echo "Option -a|--arch must be set" - usage -fi -if [ "$ARCH" = "" ]; then - echo "Unsupport architecture name !" - usage -fi - -cd ${XDT_SDK} || exit 1 - -# Cleanup -trap "cleanExit" 0 1 2 15 -cleanExit () -{ - if ($do_cleanup); then - [[ -f ${XDT_SDK}/${FILE} ]] && rm -f ${XDT_SDK}/${FILE} - fi -} - -# Get SDK installer -if [ ! -f $FILE ]; then - wget "$SDK_BASEURL/$FILE" -O ${XDT_SDK}/${FILE} || exit 1 -fi - -# Retreive default install dir to extract version -offset=$(grep -na -m1 "^MARKER:$" $FILE | cut -d':' -f1) -eval $(head -n $offset $FILE | grep ^DEFAULT_INSTALL_DIR= ) -VERSION=$(basename $DEFAULT_INSTALL_DIR) - -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} diff --git a/scripts/get-syncthing.sh b/scripts/get-syncthing.sh deleted file mode 100755 index 54ca7e1..0000000 --- a/scripts/get-syncthing.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash - -# Configurable variables -[ -z "$SYNCTHING_VERSION" ] && SYNCTHING_VERSION=0.14.28 - -# FIXME: temporary HACK while waiting merge of #165 -#[ -z "$SYNCTHING_INOTIFY_VERSION" ] && SYNCTHING_INOTIFY_VERSION=0.8.5 -[ -z "$SYNCTHING_INOTIFY_VERSION" ] && { SYNCTHING_INOTIFY_VERSION=master; SYNCTHING_INOTIFY_CMID=af6fbf9d63f95a0; } -[ -z "$DESTDIR" ] && DESTDIR=/usr/local/bin -[ -z "$TMPDIR" ] && TMPDIR=/tmp - - -TEMPDIR=$TMPDIR/.get-st.$$ -mkdir -p ${TEMPDIR} && cd ${TEMPDIR} || exit 1 -trap "cleanExit" 0 1 2 15 -cleanExit () -{ - rm -rf ${TEMPDIR} -} - -echo "Get Syncthing..." - -## Install Syncthing + Syncthing-inotify -## gpg: key 00654A3E: public key "Syncthing Release Management " imported -gpg -q --keyserver pool.sks-keyservers.net --recv-keys 37C84554E7E0A261E4F76E1ED26E6ED000654A3E || exit 1 - -tarball="syncthing-linux-amd64-v${SYNCTHING_VERSION}.tar.gz" \ - && curl -sfSL "https://github.com/syncthing/syncthing/releases/download/v${SYNCTHING_VERSION}/${tarball}" -O \ - && curl -sfSL "https://github.com/syncthing/syncthing/releases/download/v${SYNCTHING_VERSION}/sha1sum.txt.asc" -O \ - && gpg -q --verify sha1sum.txt.asc \ - && grep -E " ${tarball}\$" sha1sum.txt.asc | sha1sum -c - \ - && rm sha1sum.txt.asc \ - && tar -xvf "$tarball" --strip-components=1 "$(basename "$tarball" .tar.gz)"/syncthing \ - && mv syncthing ${DESTDIR}/syncthing || exit 1 - -echo "Get Syncthing-inotify..." -if [ "$SYNCTHING_INOTIFY_VERSION" = "master" ]; then - mkdir -p ${TEMPDIR}/syncthing-inotify-build/src/github.com/syncthing || exit 1 - cd ${TEMPDIR}/syncthing-inotify-build/src/github.com/syncthing - git clone https://github.com/syncthing/syncthing || exit 1 - git clone https://github.com/syncthing/syncthing-inotify || exit 1 - cd syncthing-inotify - if [ "$SYNCTHING_INOTIFY_CMID" != "" ]; then - git checkout -q $SYNCTHING_INOTIFY_CMID || exit 1 - fi - git status - export GOPATH=$(realpath `pwd`/../../../..) - version=$(git describe --tags --always | sed 's/^v//')__patch_165 - go build -v -i -ldflags "-w -X main.Version=$version" -o ${DESTDIR}/syncthing-inotify || exit 1 -else - -tarball="syncthing-inotify-linux-amd64-v${SYNCTHING_INOTIFY_VERSION}.tar.gz" \ - && curl -sfSL "https://github.com/syncthing/syncthing-inotify/releases/download/v${SYNCTHING_INOTIFY_VERSION}/${tarball}" -O \ - && tar -xvf "${tarball}" syncthing-inotify \ - && mv syncthing-inotify ${DESTDIR}/syncthing-inotify -fi - -echo "DONE: syncthing and syncthing-inotify successfuly installed in ${DESTDIR}" \ No newline at end of file diff --git a/scripts/xds-server-start.sh b/scripts/xds-server-start.sh new file mode 100755 index 0000000..8814eb8 --- /dev/null +++ b/scripts/xds-server-start.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +# Configurable variables +[ -z "$BINDIR" ] && BINDIR=/usr/local/bin +[ -z "$XDS_CONFFILE" ] && XDS_CONFFILE=$HOME/.xds/config.json +[ -z "$XDS_SHAREDIR" ] && XDS_SHAREDIR=$HOME/.xds/share +[ -z "$ST_CONFDIR" ] && ST_CONFDIR=$HOME/.xds/syncthing-config +[ -z "$XDS_WWWDIR" ] && XDS_WWWDIR=webapp/dist +[ -z "$LOGLEVEL" ] && LOGLEVEL=warn +[ -z "$LOGDIR" ] && LOGDIR=/tmp/xds-server/logs +[ -z "$PORT_GUI" ] && PORT_GUI=8384 +[ -z "$API_KEY" ] && API_KEY="1234abcezam" + +[[ -f $BINDIR/xds-server ]] || { echo "Cannot find xds-server in BINDIR !"; exit 1; } + +# Create config.json file when needed +if [ ! -f "${XDS_CONFFILE}" ]; then + mv ${XDS_CONFFILE} ${XDS_CONFFILE}.old + [ ! -f "$XDS_WWWDIR/index.html" ] && XDS_WWWDIR=$BINDIR/www-xds-server + [ ! -f "$XDS_WWWDIR/index.html" ] && XDS_WWWDIR=/var/www/xds-server + [ ! -f "$XDS_WWWDIR/index.html" ] && { echo "Cannot determine XDS-server webapp directory."; exit 1; } + cat < ${XDS_CONFFILE} +{ + "webAppDir": "${XDS_WWWDIR}", + "shareRootDir": "${XDS_SHAREDIR}", + "logsDir": "${LOGDIR}", + "sdkRootDir": "/xdt/sdk", + "syncthing": { + "binDir": "${BINDIR}", + "home": "${ST_CONFDIR}", + "gui-address": "http://localhost:${PORT_GUI}", + "gui-apikey": "${API_KEY}" + } +} +EOF +fi + +echo "### Configuration in config.json: " +cat ${XDS_CONFFILE} +echo "" + +mkdir -p ${LOGDIR} +LOG_XDS=${LOGDIR}/xds-server.log + +# Download xds-agent tarball +SCRIPT_GET_XDS_TARBALL=$BINDIR/xds-utils/get-xds-agent.sh +if [ ! -f ${SCRIPT_GET_XDS_TARBALL} ]; then + SCRIPT_GET_XDS_TARBALL=$(dirname $0)/xds-utils/get-xds-agent.sh +fi +if [ -f ${SCRIPT_GET_XDS_TARBALL} ]; then + TARBALLDIR=${XDS_WWWDIR}/assets/xds-agent-tarballs + [ ! -d "$TARBALLDIR" ] && TARBALLDIR=$BINDIR/www-xds-server/assets/xds-agent-tarballs + [ ! -d "$TARBALLDIR" ] && TARBALLDIR=$(grep webAppDir ~/.xds/config.json|cut -d '"' -f 4)/assets/xds-agent-tarballs + if [ -d "$TARBALLDIR" ]; then + DEST_DIR=$TARBALLDIR $SCRIPT_GET_XDS_TARBALL + else + echo "WARNING: cannot download / update xds-agent tarballs (DESTDIR error)" + fi +else + echo "WARNING: cannot download / update xds-agent tarballs" +fi + + +echo "### Start XDS server" +echo "nohup $BINDIR/xds-server --config $XDS_CONFFILE -log $LOGLEVEL > $LOG_XDS 2>&1" +if [ "$1" != "-dryrun" ]; then + nohup $BINDIR/xds-server --config $XDS_CONFFILE -log $LOGLEVEL > $LOG_XDS 2>&1 & + pid_xds=$(jobs -p) + echo "pid=${pid_xds}" +fi diff --git a/scripts/xds-server-stop.sh b/scripts/xds-server-stop.sh new file mode 100755 index 0000000..8a6bf5e --- /dev/null +++ b/scripts/xds-server-stop.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# Stop it gracefully +pkill -INT xds-server +sleep 1 + +# Seems no stopped, nasty kill +nbProc=$(ps -ef |grep xds-server |grep -v grep |wc -l) +if [ "$nbProc" != "0" ]; then + pkill -KILL xds-server +fi + +nbProc=$(ps -ef |grep syncthing |grep -v grep |wc -l) +if [ "$nbProc" != "0" ]; then + pkill -KILL syncthing + pkill -KILL syncthing-inotify +fi + diff --git a/scripts/xds-start-server.sh b/scripts/xds-start-server.sh deleted file mode 100755 index 066029a..0000000 --- a/scripts/xds-start-server.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash - -# Configurable variables -[ -z "$BINDIR" ] && BINDIR=/usr/local/bin -[ -z "$XDS_CONFFILE" ] && XDS_CONFFILE=$HOME/.xds/config.json -[ -z "$XDS_SHAREDIR" ] && XDS_SHAREDIR=$HOME/.xds/share -[ -z "$ST_CONFDIR" ] && ST_CONFDIR=$HOME/.xds/syncthing-config -[ -z "$XDS_WWWDIR" ] && XDS_WWWDIR=webapp/dist -[ -z "$LOGLEVEL" ] && LOGLEVEL=warn -[ -z "$LOGDIR" ] && LOGDIR=/tmp/xds-server/logs -[ -z "$PORT_GUI" ] && PORT_GUI=8384 -[ -z "$API_KEY" ] && API_KEY="1234abcezam" - -[[ -f $BINDIR/xds-server ]] || { echo "Cannot find xds-server in BINDIR !"; exit 1; } - -# Create config.json file when needed -if [ ! -f "${XDS_CONFFILE}" ]; then - mv ${XDS_CONFFILE} ${XDS_CONFFILE}.old - [ ! -f "$XDS_WWWDIR/index.html" ] && XDS_WWWDIR=$BINDIR/www-xds-server - [ ! -f "$XDS_WWWDIR/index.html" ] && XDS_WWWDIR=/var/www/xds-server - [ ! -f "$XDS_WWWDIR/index.html" ] && { echo "Cannot determine XDS-server webapp directory."; exit 1; } - cat < ${XDS_CONFFILE} -{ - "webAppDir": "${XDS_WWWDIR}", - "shareRootDir": "${XDS_SHAREDIR}", - "logsDir": "${LOGDIR}", - "sdkRootDir": "/xdt/sdk", - "syncthing": { - "binDir": "${BINDIR}", - "home": "${ST_CONFDIR}", - "gui-address": "http://localhost:${PORT_GUI}", - "gui-apikey": "${API_KEY}" - } -} -EOF -fi - -echo "### Configuration in config.json: " -cat ${XDS_CONFFILE} -echo "" - -mkdir -p ${LOGDIR} -LOG_XDS=${LOGDIR}/xds-server.log - -echo "### Start XDS server" -echo "nohup $BINDIR/xds-server --config $XDS_CONFFILE -log $LOGLEVEL > $LOG_XDS 2>&1" -if [ "$1" != "-dryrun" ]; then - nohup $BINDIR/xds-server --config $XDS_CONFFILE -log $LOGLEVEL > $LOG_XDS 2>&1 & - pid_xds=$(jobs -p) - echo "pid=${pid_xds}" -fi diff --git a/scripts/xds-stop-server.sh b/scripts/xds-stop-server.sh deleted file mode 100755 index 8a6bf5e..0000000 --- a/scripts/xds-stop-server.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# Stop it gracefully -pkill -INT xds-server -sleep 1 - -# Seems no stopped, nasty kill -nbProc=$(ps -ef |grep xds-server |grep -v grep |wc -l) -if [ "$nbProc" != "0" ]; then - pkill -KILL xds-server -fi - -nbProc=$(ps -ef |grep syncthing |grep -v grep |wc -l) -if [ "$nbProc" != "0" ]; then - pkill -KILL syncthing - pkill -KILL syncthing-inotify -fi - diff --git a/scripts/xds-utils/get-syncthing.sh b/scripts/xds-utils/get-syncthing.sh new file mode 100755 index 0000000..54ca7e1 --- /dev/null +++ b/scripts/xds-utils/get-syncthing.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +# Configurable variables +[ -z "$SYNCTHING_VERSION" ] && SYNCTHING_VERSION=0.14.28 + +# FIXME: temporary HACK while waiting merge of #165 +#[ -z "$SYNCTHING_INOTIFY_VERSION" ] && SYNCTHING_INOTIFY_VERSION=0.8.5 +[ -z "$SYNCTHING_INOTIFY_VERSION" ] && { SYNCTHING_INOTIFY_VERSION=master; SYNCTHING_INOTIFY_CMID=af6fbf9d63f95a0; } +[ -z "$DESTDIR" ] && DESTDIR=/usr/local/bin +[ -z "$TMPDIR" ] && TMPDIR=/tmp + + +TEMPDIR=$TMPDIR/.get-st.$$ +mkdir -p ${TEMPDIR} && cd ${TEMPDIR} || exit 1 +trap "cleanExit" 0 1 2 15 +cleanExit () +{ + rm -rf ${TEMPDIR} +} + +echo "Get Syncthing..." + +## Install Syncthing + Syncthing-inotify +## gpg: key 00654A3E: public key "Syncthing Release Management " imported +gpg -q --keyserver pool.sks-keyservers.net --recv-keys 37C84554E7E0A261E4F76E1ED26E6ED000654A3E || exit 1 + +tarball="syncthing-linux-amd64-v${SYNCTHING_VERSION}.tar.gz" \ + && curl -sfSL "https://github.com/syncthing/syncthing/releases/download/v${SYNCTHING_VERSION}/${tarball}" -O \ + && curl -sfSL "https://github.com/syncthing/syncthing/releases/download/v${SYNCTHING_VERSION}/sha1sum.txt.asc" -O \ + && gpg -q --verify sha1sum.txt.asc \ + && grep -E " ${tarball}\$" sha1sum.txt.asc | sha1sum -c - \ + && rm sha1sum.txt.asc \ + && tar -xvf "$tarball" --strip-components=1 "$(basename "$tarball" .tar.gz)"/syncthing \ + && mv syncthing ${DESTDIR}/syncthing || exit 1 + +echo "Get Syncthing-inotify..." +if [ "$SYNCTHING_INOTIFY_VERSION" = "master" ]; then + mkdir -p ${TEMPDIR}/syncthing-inotify-build/src/github.com/syncthing || exit 1 + cd ${TEMPDIR}/syncthing-inotify-build/src/github.com/syncthing + git clone https://github.com/syncthing/syncthing || exit 1 + git clone https://github.com/syncthing/syncthing-inotify || exit 1 + cd syncthing-inotify + if [ "$SYNCTHING_INOTIFY_CMID" != "" ]; then + git checkout -q $SYNCTHING_INOTIFY_CMID || exit 1 + fi + git status + export GOPATH=$(realpath `pwd`/../../../..) + version=$(git describe --tags --always | sed 's/^v//')__patch_165 + go build -v -i -ldflags "-w -X main.Version=$version" -o ${DESTDIR}/syncthing-inotify || exit 1 +else + +tarball="syncthing-inotify-linux-amd64-v${SYNCTHING_INOTIFY_VERSION}.tar.gz" \ + && curl -sfSL "https://github.com/syncthing/syncthing-inotify/releases/download/v${SYNCTHING_INOTIFY_VERSION}/${tarball}" -O \ + && tar -xvf "${tarball}" syncthing-inotify \ + && mv syncthing-inotify ${DESTDIR}/syncthing-inotify +fi + +echo "DONE: syncthing and syncthing-inotify successfuly installed in ${DESTDIR}" \ No newline at end of file diff --git a/scripts/xds-utils/get-xds-agent.sh b/scripts/xds-utils/get-xds-agent.sh new file mode 100755 index 0000000..0813875 --- /dev/null +++ b/scripts/xds-utils/get-xds-agent.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +. /etc/xdtrc + +[ -z "$XDS_AGENT_BASEURL" ] && XDS_AGENT_BASEURL="http://iot.bzh/download/public/2017/XDS/xds-agent/" +[ -z "$DEST_DIR" ] && DEST_DIR=./webapp/dist/assets/xds-agent-tarballs + +TARBALLS=$(curl -s ${XDS_AGENT_BASEURL} | grep -oP 'href="[^"]*.zip"' | cut -d '"' -f 2) + +usage() { + echo "Usage: $(basename $0) [-h|--help] [-noclean] [-a|--arch ] [-l|--list]" + exit 1 +} + +do_cleanup=true +while [ $# -ne 0 ]; do + case $1 in + -h|--help|"") + usage + ;; + -l|--list) + echo "Available xds-agent tarballs:" + for t in $TARBALLS; do echo " $t"; done + exit 0 + ;; + -noclean) + do_cleanup=false + ;; + *) + echo "Invalid argument: $1" + usage + ;; + esac + shift +done + +if [ ! -d ${DEST_DIR} ]; then + echo "Invalid destination directory: ${DEST_DIR}" + exit 1 +fi + +# Get not existing tarballs +exitCode=0 +for file in $TARBALLS; do + DESTFILE=${DEST_DIR}/${file} + if [ ! -f $DESTFILE ]; then + echo -n " Downloading ${file}... " + wget -q "${XDS_AGENT_BASEURL}/${file}" -O ${DESTFILE} + if [ "$?" != 0 ]; then + echo "ERROR" + exitCode=1 + fi + echo "OK" + fi +done + +exit $exitCode diff --git a/scripts/xds-utils/install-agl-sdks.sh b/scripts/xds-utils/install-agl-sdks.sh new file mode 100755 index 0000000..8edac2d --- /dev/null +++ b/scripts/xds-utils/install-agl-sdks.sh @@ -0,0 +1,101 @@ +#!/bin/bash + +. /etc/xdtrc + +[ -z "$SDK_BASEURL" ] && SDK_BASEURL="http://iot.bzh/download/public/2017/XDS/sdk/" +[ -z "$XDT_SDK" ] && XDT_SDK=/xdt/sdk + +# Support only poky_agl profile for now +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 ] [-l|--list]" + echo "For example, arch name is: aarch64, armv7vehf or x86-64" + exit 1 +} + +getFile() { + arch=$1 + for sdk in ${SDKS}; do + echo $sdk | grep "${PROFILE}.*${arch}.*.sh" > /dev/null 2>&1 + if [ "$?" = "0" ]; then + echo $sdk + return 0 + fi + done + echo "No SDK tarball found for arch $arch" + return 1 +} + +do_cleanup=true +FILE="" +ARCH="" +while [ $# -ne 0 ]; do + case $1 in + -h|--help|"") + usage + ;; + -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 + ;; + *) + echo "Invalid argument: $1" + usage + ;; + esac + shift +done + +if [ "$FILE" = "" ]; then + echo "Option -a|--arch must be set" + usage +fi +if [ "$ARCH" = "" ]; then + echo "Unsupport architecture name !" + usage +fi + +cd ${XDT_SDK} || exit 1 + +# Cleanup +trap "cleanExit" 0 1 2 15 +cleanExit () +{ + if ($do_cleanup); then + [[ -f ${XDT_SDK}/${FILE} ]] && rm -f ${XDT_SDK}/${FILE} + fi +} + +# Get SDK installer +if [ ! -f $FILE ]; then + wget "$SDK_BASEURL/$FILE" -O ${XDT_SDK}/${FILE} || exit 1 +fi + +# Retreive default install dir to extract version +offset=$(grep -na -m1 "^MARKER:$" $FILE | cut -d':' -f1) +eval $(head -n $offset $FILE | grep ^DEFAULT_INSTALL_DIR= ) +VERSION=$(basename $DEFAULT_INSTALL_DIR) + +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} -- cgit 1.2.3-korg