Mercurial > p > roundup > code
annotate scripts/Docker/roundup_start @ 7696:4af0d235b570
feat(db): support using postgresql service connection file
Add new service rdbms config option to set the service name to be used
with a postgresql service connection file.
This can be done using the PGSERVICE environment variable for a single
instance tracker server. For a multi-instance server this per-tracker
config option is needed.
Note that settings (host, user, (db)name...) in config.ini file will
override the service connection file setting. Also setting PGSERVICE
and service will use the service setting.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Tue, 07 Nov 2023 12:11:37 -0500 |
| parents | 095f379bf639 |
| children | ccb5169ee6ee |
| rev | line source |
|---|---|
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
1 #! /bin/sh |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
2 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
3 # When container starts verify that the trackers are configured. |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
4 # If they are, start the server otherwise run roundup-admin |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
5 # for installation and initialization. |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
6 |
|
7635
0f6b7a70bc43
fix: update comments force exit on pipefail
John Rouillard <rouilj@ieee.org>
parents:
7441
diff
changeset
|
7 # "$@" should be one of the recognized keywords or arguments for |
|
0f6b7a70bc43
fix: update comments force exit on pipefail
John Rouillard <rouilj@ieee.org>
parents:
7441
diff
changeset
|
8 # roundup-server including one or more tracker tracker=directory pairs. |
|
0f6b7a70bc43
fix: update comments force exit on pipefail
John Rouillard <rouilj@ieee.org>
parents:
7441
diff
changeset
|
9 |
|
7675
b3c3e508b18f
fix: move POSIX unsupported items outside of set -e
John Rouillard <rouilj@ieee.org>
parents:
7674
diff
changeset
|
10 # exit on errors; POSIX (e.g. dash as on ubuntu) doesn't support |
|
b3c3e508b18f
fix: move POSIX unsupported items outside of set -e
John Rouillard <rouilj@ieee.org>
parents:
7674
diff
changeset
|
11 # pipefail. So setting it will fail. Allow that to happen then |
|
b3c3e508b18f
fix: move POSIX unsupported items outside of set -e
John Rouillard <rouilj@ieee.org>
parents:
7674
diff
changeset
|
12 # set exit on error so the script will still run. |
|
b3c3e508b18f
fix: move POSIX unsupported items outside of set -e
John Rouillard <rouilj@ieee.org>
parents:
7674
diff
changeset
|
13 set -o pipefail |
|
b3c3e508b18f
fix: move POSIX unsupported items outside of set -e
John Rouillard <rouilj@ieee.org>
parents:
7674
diff
changeset
|
14 # not supported by POSIX shell, but then neither is pipefail. |
|
b3c3e508b18f
fix: move POSIX unsupported items outside of set -e
John Rouillard <rouilj@ieee.org>
parents:
7674
diff
changeset
|
15 trap "echo 'Exiting on pipefail'" ERR |
|
b3c3e508b18f
fix: move POSIX unsupported items outside of set -e
John Rouillard <rouilj@ieee.org>
parents:
7674
diff
changeset
|
16 |
|
b3c3e508b18f
fix: move POSIX unsupported items outside of set -e
John Rouillard <rouilj@ieee.org>
parents:
7674
diff
changeset
|
17 set -e |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
18 |
|
7677
c7788bdd3760
fix: use [ -n ... ] rather than ! [ -z ...]
John Rouillard <rouilj@ieee.org>
parents:
7676
diff
changeset
|
19 if [ -n "$SHELL_DEBUG" ]; then |
|
6581
b5fb268b7f04
Docker installation doc improved and switchable debugging
John Rouillard <rouilj@ieee.org>
parents:
6555
diff
changeset
|
20 set -xv |
|
b5fb268b7f04
Docker installation doc improved and switchable debugging
John Rouillard <rouilj@ieee.org>
parents:
6555
diff
changeset
|
21 fi |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
22 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
23 trap exit INT |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
24 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
25 do_exit=0 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
26 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
27 if test -t 0 -a -t 1; then # see if stdin/out are associated with a tty |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
28 might_be_interactive="true" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
29 else |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
30 might_be_interactive="false" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
31 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
32 |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
33 for tracker_spec in "$@"; do |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
34 # IFS== set a=b doesn't just assign $1 and $2 in busybox ash |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
35 # it also clobbers '$@'. 'printf mumble | read' starts read in a |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
36 # subshell so vars are not available in parent. |
|
7673
08e87030f3a2
fix: use read -r to remove \ special meaning
John Rouillard <rouilj@ieee.org>
parents:
7672
diff
changeset
|
37 IFS="=" read -r tracker directory <<- EOE |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
38 $tracker_spec |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
39 EOE |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
40 # ^ is a tab for use with <<- |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
41 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
42 if [ -z "$directory" ]; then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
43 # $tracker_spec was not in the form of a=b, check to see |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
44 # if it's a request to start in demo/shell mode: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
45 case "$tracker" in |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
46 demo) |
|
7661
b31343f16153
fix: roundup_start script exited for 2.3.0 roundup.
John Rouillard <rouilj@ieee.org>
parents:
7635
diff
changeset
|
47 # if grep does not find 2.2.0 it exits non-zero and |
|
b31343f16153
fix: roundup_start script exited for 2.3.0 roundup.
John Rouillard <rouilj@ieee.org>
parents:
7635
diff
changeset
|
48 # because of "-eo pipefail" the script exits. So || true |
|
b31343f16153
fix: roundup_start script exited for 2.3.0 roundup.
John Rouillard <rouilj@ieee.org>
parents:
7635
diff
changeset
|
49 # so pipeline exits true. |
|
b31343f16153
fix: roundup_start script exited for 2.3.0 roundup.
John Rouillard <rouilj@ieee.org>
parents:
7635
diff
changeset
|
50 version=$(roundup-admin -v | grep '2\.2\.0' || true) |
|
7441
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
51 if [ -n "$version" ]; then |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
52 printf "\nRoundup version: %s does not support docker demo mode\n" "$version" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
53 printf "Try building with a version newer than 2.2.0.\n" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
54 printf "For example:\n" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
55 printf " docker build --build-arg=\"source=pypi~=2.3.0a1\" ...\n" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
56 exit 3 |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
57 fi |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
58 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
59 if [ -z "$PORT_8080" ]; then |
|
7441
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
60 PORT_8080=8917 |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
61 printf " If docker reports a bind error, you can set the\n" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
62 printf " Docker environment variable PORT_8080 to\n" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
63 printf " fix it.\n\n" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
64 printf " Add -e PORT_8080=port_number to the docker run\n" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
65 printf " command. The port_number must match the first\n" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
66 printf " value to -p which must be an unused port\n" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
67 printf " on your server.\n\n" |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
68 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
69 template=classic |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
70 backend=sqlite |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
71 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
72 shift |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
73 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
74 demoArgs=$# |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
75 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
76 for arg in "$@"; do |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
77 # all keywords are unique, so iterate over all and |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
78 # assign as appropriate |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
79 case "$arg" in |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
80 classic|devel|jinja2|minimal|responsive) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
81 template="$arg";; |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
82 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
83 anydbm|sqlite) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
84 backend="$arg";; |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
85 postgres|mysql) |
|
7672
cf5d37182dc9
fix: use variable template sub for printf.
John Rouillard <rouilj@ieee.org>
parents:
7661
diff
changeset
|
86 printf "demo mode only supports sqlite or anydbm backends, not %s. Exiting." "$1" |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
87 exit 1;; |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
88 nuke) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
89 nuke="$arg";; |
|
7672
cf5d37182dc9
fix: use variable template sub for printf.
John Rouillard <rouilj@ieee.org>
parents:
7661
diff
changeset
|
90 *) printf "Unknown argument %s.\n" "$1" |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
91 printf "Usage: demo [template] [db]\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
92 printf " template: one of " |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
93 printf "classic devel jinja2 minimal responsive\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
94 printf " db: one of: sqlite anydbm\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
95 printf "default: classic sqlite\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
96 printf "Exiting\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
97 exit 1 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
98 esac |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
99 shift |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
100 done |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
101 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
102 # run demo make sure to set bind address -B to 0.0.0.0 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
103 # otherwise we can never make it out of the docker container. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
104 # use -p to force port to match the exported docker port. |
|
7678
095f379bf639
fix: do not use -a as argument to test
John Rouillard <rouilj@ieee.org>
parents:
7677
diff
changeset
|
105 if [ -f tracker/demo/config.ini ] && [ -z "$nuke" ]; then |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
106 if [ "$demoArgs" -ne 0 ]; then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
107 printf "Error: backend and template arguments to demo " |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
108 printf "are invalid if a tracker\nis configured and " |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
109 printf "'nuke' is not specified.\nExiting.\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
110 exit 1 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
111 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
112 printf "Restarting existing tracker.\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
113 # Restart an existing demo tracker. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
114 exec roundup-demo \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
115 -B 0.0.0.0 \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
116 -p 8080 \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
117 tracker/demo |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
118 else |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
119 # Create new or nuke/create existing tracker. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
120 # Set parameters required to create tracker. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
121 # Inherit the url port spec from the environment |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
122 # variable PORT_8080 using default value or value |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
123 # specified on the docker run command line. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
124 printf "Creating new tracker.\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
125 exec roundup-demo \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
126 -B 0.0.0.0 \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
127 -p 8080 \ |
|
7674
b8aef93178db
fix: quote variable substitution
John Rouillard <rouilj@ieee.org>
parents:
7673
diff
changeset
|
128 -b "$backend" \ |
|
b8aef93178db
fix: quote variable substitution
John Rouillard <rouilj@ieee.org>
parents:
7673
diff
changeset
|
129 --urlport "$PORT_8080" \ |
|
b8aef93178db
fix: quote variable substitution
John Rouillard <rouilj@ieee.org>
parents:
7673
diff
changeset
|
130 -t "$template" \ |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
131 tracker/demo \ |
|
7674
b8aef93178db
fix: quote variable substitution
John Rouillard <rouilj@ieee.org>
parents:
7673
diff
changeset
|
132 "$nuke" |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
133 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
134 ;; |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
135 shell) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
136 if [ "$might_be_interactive" = "false" ]; then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
137 printf \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
138 "Error: must use -it on docker command line to invoke shell\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
139 exit 3 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
140 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
141 exec /bin/sh;; |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
142 admin) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
143 shift |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
144 exec roundup-admin "$@";; |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
145 *) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
146 # we just continue. Allow setting CMD to: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
147 # -i index_template issue=tracker |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
148 # for example. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
149 continue |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
150 esac |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
151 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
152 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
153 # we have a tracker=directory spec. Validate it and see if we need to |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
154 # install or initialize it. |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
155 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
156 # something is specified or built wrong. Don't start. |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
157 if [ ! -d "$directory" ]; then |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
158 printf "Unable to find directory %s for tracker %s. Exiting.\n" \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
159 "$directory" "$tracker" |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
160 exit 1 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
161 fi |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
162 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
163 # verify that config.ini has been edited with a web spec. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
164 # user must at minimum define web in config.ini. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
165 if ! grep '^\s*web\s*=\s*' "$directory/config.ini" > /dev/null 2>&1 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
166 then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
167 if [ -e "$directory/config.ini" ]; then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
168 printf "Please edit %s/config.ini and set the required |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
169 parameters.\n" "$directory" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
170 printf "The web setting appears to be missing.\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
171 exit 3 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
172 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
173 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
174 printf "Installing %s tracker in %s\n" "$tracker" "$directory" |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
175 roundup-admin -i "$directory" install |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
176 do_exit=1 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
177 fi |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
178 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
179 # we have a valid config.ini so init database if not done |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
180 # if we get errors, the db directory should be missing |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
181 # and we print an error. |
|
7678
095f379bf639
fix: do not use -a as argument to test
John Rouillard <rouilj@ieee.org>
parents:
7677
diff
changeset
|
182 if [ $do_exit = 0 ] && ! [ -e "$directory/db" ]; then |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
183 printf "Initializing tracker %s\n" "$tracker" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
184 if ! roundup-admin -i "$directory" init; then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
185 # something went wrong. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
186 # verify it looks like a tracker directory |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
187 # then remove the database directory |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
188 test -e "$directory/TEMPLATE-INFO.txt" && \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
189 rm -rf "$directory/db" |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
190 fi |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
191 do_exit=1 |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
192 fi |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
193 done # for "$@" |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
194 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
195 # if any config.ini needs editing don't start up. |
|
7676
678d235f024d
fix: use POSIX supported test a = b rather than a == b.
John Rouillard <rouilj@ieee.org>
parents:
7675
diff
changeset
|
196 if [ $do_exit = 0 ]; then |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
197 # make roundup-server process pid 1 with exec |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
198 exec roundup-server -n 0.0.0.0 "$@" |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
199 fi |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
200 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
201 exit 0 |
