diff options
Diffstat (limited to 'scripts/xds-server-start.sh')
-rwxr-xr-x | scripts/xds-server-start.sh | 70 |
1 files changed, 70 insertions, 0 deletions
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 <<EOF > ${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 |