Merge branch '18947-keep-balance'
[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 cat <<EOF > /usr/src/workbench2/public/config.json
26 {
27   "API_HOST": "${localip}:${services[controller-ssl]}",
28   "VOCABULARY_URL": "/vocabulary-example.json",
29   "FILE_VIEWERS_CONFIG_URL": "/file-viewers-example.json"
30 }
31 EOF
32
33 export ARVADOS_API_HOST=$localip:${services[controller-ssl]}
34 export ARVADOS_API_TOKEN=$(cat $ARVADOS_CONTAINER_PATH/superuser_token)
35
36 url_prefix="https://$localip:${services[workbench2-ssl]}/"
37
38 set +e
39 read -rd $'\000' apiclient <<EOF
40 {
41    "url_prefix": "$url_prefix",
42    "is_trusted": true
43 }
44 EOF
45 set -e
46
47 clientuuid=$(arv --format=uuid api_client list --filters '[["url_prefix", "=", "'$url_prefix'"]]')
48 if [[ -n "$clientuuid" ]] ; then
49     arv api_client update --uuid $clientuuid --api-client "$apiclient"
50 else
51     arv api_client create --api-client "$apiclient"
52 fi
53
54 # Can't use "yarn start", need to run the dev server script
55 # directly so that the TERM signal from "sv restart" gets to the
56 # right process.
57 export VERSION=$(./version-at-commit.sh)
58 export BROWSER=none
59 export CI=true
60 export HTTPS=false
61 node --version
62 exec node node_modules/react-scripts/scripts/start.js