Add doc to create & start XDS AGL docker container.
[src/xds/xds-server.git] / scripts / xds-start-server.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=warn
10 [ -z "$LOGDIR" ] && LOGDIR=/tmp/xds-server/logs
11 [ -z "$PORT_GUI" ] && PORT_GUI=8384
12 [ -z "$API_KEY" ] && API_KEY="1234abcezam"
13
14 [[ -f $BINDIR/xds-server ]] || { echo "Cannot find xds-server in BINDIR !"; exit 1; }
15
16 # Create config.json file when needed
17 if [ ! -f "${XDS_CONFFILE}" ]; then
18     mv ${XDS_CONFFILE} ${XDS_CONFFILE}.old
19     [ ! -f "$XDS_WWWDIR/index.html" ] && XDS_WWWDIR=$BINDIR/www-xds-server
20     [ ! -f "$XDS_WWWDIR/index.html" ] && XDS_WWWDIR=/var/www/xds-server
21     [ ! -f "$XDS_WWWDIR/index.html" ] && { echo "Cannot determine XDS-server webapp directory."; exit 1; }
22     cat <<EOF > ${XDS_CONFFILE}
23 {
24     "webAppDir": "${XDS_WWWDIR}",
25     "shareRootDir": "${XDS_SHAREDIR}",
26     "logsDir": "${LOGDIR}",
27     "sdkRootDir": "/xdt/sdk",
28     "syncthing": {
29         "binDir": "${BINDIR}",
30         "home": "${ST_CONFDIR}",
31         "gui-address": "http://localhost:${PORT_GUI}",
32         "gui-apikey": "${API_KEY}"
33     }
34 }
35 EOF
36 fi
37
38 echo "### Configuration in config.json: "
39 cat ${XDS_CONFFILE}
40 echo ""
41
42 mkdir -p ${LOGDIR}
43 LOG_XDS=${LOGDIR}/xds-server.log
44
45 echo "### Start XDS server"
46 echo "nohup $BINDIR/xds-server --config $XDS_CONFFILE -log $LOGLEVEL > $LOG_XDS 2>&1"
47 if [ "$1" != "-dryrun" ]; then
48     nohup $BINDIR/xds-server --config $XDS_CONFFILE -log $LOGLEVEL > $LOG_XDS 2>&1 &
49     pid_xds=$(jobs -p)
50     echo "pid=${pid_xds}"
51 fi