arvbox option to override API_HOST to test with other clusters
[arvados.git] / tools / arvbox / lib / arvbox / docker / service / workbench2 / run-service
1 #!/bin/bash
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5
6 exec 2>&1
7 set -ex -o pipefail
8
9 .  /usr/local/lib/arvbox/common.sh
10
11 if test "$1" != "--only-deps" ; then
12   while [ ! -f $ARVADOS_CONTAINER_PATH/api.ready ]; do
13     sleep 1
14   done
15 fi
16
17 cd /usr/src/workbench2
18
19 yarn install
20
21 if test "$1" = "--only-deps" ; then
22     exit
23 fi
24
25 API_HOST=${localip}:${services[controller-ssl]}
26
27 if test -f /usr/src/workbench2/public/API_HOST ; then
28     API_HOST=$(cat /usr/src/workbench2/public/API_HOST)
29 fi
30
31 cat <<EOF > /usr/src/workbench2/public/config.json
32 {
33   "API_HOST": "$API_HOST"
34 }
35 EOF
36
37 export ARVADOS_API_HOST=$localip:${services[controller-ssl]}
38 export ARVADOS_API_TOKEN=$(cat $ARVADOS_CONTAINER_PATH/superuser_token)
39
40 url_prefix="https://$localip:${services[workbench2-ssl]}/"
41
42 set +e
43 read -rd $'\000' apiclient <<EOF
44 {
45    "url_prefix": "$url_prefix",
46    "is_trusted": true
47 }
48 EOF
49 set -e
50
51 clientuuid=$(arv --format=uuid api_client list --filters '[["url_prefix", "=", "'$url_prefix'"]]')
52 if [[ -n "$clientuuid" ]] ; then
53     arv api_client update --uuid $clientuuid --api-client "$apiclient"
54 else
55     arv api_client create --api-client "$apiclient"
56 fi
57
58 # Can't use "yarn start", need to run the dev server script
59 # directly so that the TERM signal from "sv restart" gets to the
60 # right process.
61 export VERSION=$(./version-at-commit.sh)
62 export BROWSER=none
63 export CI=true
64 export HTTPS=false
65 node --version
66 exec node node_modules/react-scripts/scripts/start.js