Support SDK directory with spaces
[src/xds/xds-server.git] / scripts / xds-server-start.sh
1 #!/bin/bash
2
3 # Configurable variables
4 [ -z "$BINDIR" ] && BINDIR=/usr/local/bin
5 [ -z "$XDS_CONFFILE" ] && XDS_CONFFILE=$HOME/.xds/config.json
6 [ -z "$XDS_SHAREDIR" ] && XDS_SHAREDIR=$HOME/.xds/share
7 [ -z "$ST_CONFDIR" ] && ST_CONFDIR=$HOME/.xds/syncthing-config
8 [ -z "$XDS_WWWDIR" ] && XDS_WWWDIR=webapp/dist
9 [ -z "$LOGLEVEL" ] && LOGLEVEL=info
10 [ -z "$LOGDIR" ] && LOGDIR=/tmp/xds-server/logs
11 [ -z "PORT_SRV" ] && PORT_SRV=8000
12 [ -z "$PORT_GUI" ] && PORT_GUI=8384
13 [ -z "$API_KEY" ] && API_KEY="1234abcezam"
14 [ -z "$UPDATE_XDS_TARBALL" ] && UPDATE_XDS_TARBALL=1
15
16 [[ -f $BINDIR/xds-server ]] || { echo "Cannot find xds-server in BINDIR !"; exit 1; }
17
18 # Create config.json file when needed
19 if [ ! -f "${XDS_CONFFILE}" ]; then
20     mv ${XDS_CONFFILE} ${XDS_CONFFILE}.old
21     [ ! -f "$XDS_WWWDIR/index.html" ] && XDS_WWWDIR=$BINDIR/www-xds-server
22     [ ! -f "$XDS_WWWDIR/index.html" ] && XDS_WWWDIR=/var/www/xds-server
23     [ ! -f "$XDS_WWWDIR/index.html" ] && { echo "Cannot determine XDS-server webapp directory."; exit 1; }
24     cat <<EOF > ${XDS_CONFFILE}
25 {
26     "HTTPPort": ${PORT_SRV},
27     "webAppDir": "${XDS_WWWDIR}",
28     "shareRootDir": "${XDS_SHAREDIR}",
29     "logsDir": "${LOGDIR}",
30     "sdkRootDir": "/xdt/sdk",
31     "syncthing": {
32         "binDir": "${BINDIR}",
33         "home": "${ST_CONFDIR}",
34         "gui-address": "http://localhost:${PORT_GUI}",
35         "gui-apikey": "${API_KEY}"
36     }
37 }
38 EOF
39 fi
40
41 echo "### Configuration in config.json: "
42 cat ${XDS_CONFFILE}
43 echo ""
44
45 mkdir -p ${LOGDIR}
46 LOG_XDS=${LOGDIR}/xds-server.log
47
48 # Download xds-agent tarball
49 if [ "${UPDATE_XDS_TARBALL}" = 1 ]; then
50     SCRIPT_GET_XDS_TARBALL=$BINDIR/xds-utils/get-xds-agent.sh
51     if [ ! -f ${SCRIPT_GET_XDS_TARBALL} ]; then
52         SCRIPT_GET_XDS_TARBALL=$(dirname $0)/xds-utils/get-xds-agent.sh
53     fi
54     if [ -f ${SCRIPT_GET_XDS_TARBALL} ]; then
55         TARBALLDIR=${XDS_WWWDIR}/assets/xds-agent-tarballs
56         [ ! -d "$TARBALLDIR" ] && TARBALLDIR=$BINDIR/www-xds-server/assets/xds-agent-tarballs
57         [ ! -d "$TARBALLDIR" ] && TARBALLDIR=$(grep webAppDir ~/.xds/config.json|cut -d '"' -f 4)/assets/xds-agent-tarballs
58         if [ -d "$TARBALLDIR" ]; then
59             DEST_DIR=$TARBALLDIR $SCRIPT_GET_XDS_TARBALL
60         else
61             echo "WARNING: cannot download / update xds-agent tarballs (DESTDIR error)"
62         fi
63     else
64         echo "WARNING: cannot download / update xds-agent tarballs"
65     fi
66 fi
67
68
69 echo "### Start XDS server"
70 echo "nohup $BINDIR/xds-server --config $XDS_CONFFILE -log $LOGLEVEL > $LOG_XDS 2>&1"
71 if [ "$1" != "-dryrun" ]; then
72     nohup $BINDIR/xds-server --config $XDS_CONFFILE -log $LOGLEVEL > $LOG_XDS 2>&1 &
73     pid_xds=$(jobs -p)
74     echo "pid=${pid_xds}"
75 fi
76
77 exit 0