Mercurial > p > roundup > code
annotate scripts/Docker/roundup_start @ 8478:ed4ef394d5d6
doc: initial attempt to document setup of pgp support for email.
Used an AI assistant to help write this. Basic gpg commands seem to
work, but I have not tested this totally. Docs basically follow the
setup used for pgp testing in the test suite.
It looks like roundup accepts signed emails as well as encrypted
and signed emails. But it does not generate signed emails.
Also it looks like there is no PGP support for alternate email
addresses. Only primary addresses can do PGP emails.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 15 Nov 2025 16:59:24 -0500 |
| parents | c6fcc8ba478a |
| children |
| 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 |
|
7835
c6fcc8ba478a
fix: log arguments passed to docker start script to stdout.
John Rouillard <rouilj@ieee.org>
parents:
7707
diff
changeset
|
33 printf "Starting Roundup with arguments: $@" |
|
c6fcc8ba478a
fix: log arguments passed to docker start script to stdout.
John Rouillard <rouilj@ieee.org>
parents:
7707
diff
changeset
|
34 |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
35 for tracker_spec in "$@"; do |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
36 # 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
|
37 # 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
|
38 # 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
|
39 IFS="=" read -r tracker directory <<- EOE |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
40 $tracker_spec |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
41 EOE |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
42 # ^ 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
|
43 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
44 if [ -z "$directory" ]; then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
45 # $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
|
46 # 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
|
47 case "$tracker" in |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
48 demo) |
|
7661
b31343f16153
fix: roundup_start script exited for 2.3.0 roundup.
John Rouillard <rouilj@ieee.org>
parents:
7635
diff
changeset
|
49 # 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
|
50 # 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
|
51 # so pipeline exits true. |
|
b31343f16153
fix: roundup_start script exited for 2.3.0 roundup.
John Rouillard <rouilj@ieee.org>
parents:
7635
diff
changeset
|
52 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
|
53 if [ -n "$version" ]; then |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
54 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
|
55 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
|
56 printf "For example:\n" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
57 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
|
58 exit 3 |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
59 fi |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
60 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
61 if [ -z "$PORT_8080" ]; then |
|
7441
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
62 PORT_8080=8917 |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
63 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
|
64 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
|
65 printf " fix it.\n\n" |
|
e7df82ae137d
Cleanup docker before 2.3.0b1 release
John Rouillard <rouilj@ieee.org>
parents:
7340
diff
changeset
|
66 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
|
67 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
|
68 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
|
69 printf " on your server.\n\n" |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
70 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
71 template=classic |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
72 backend=sqlite |
|
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 shift |
|
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 demoArgs=$# |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
77 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
78 for arg in "$@"; do |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
79 # 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
|
80 # assign as appropriate |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
81 case "$arg" in |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
82 classic|devel|jinja2|minimal|responsive) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
83 template="$arg";; |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
84 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
85 anydbm|sqlite) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
86 backend="$arg";; |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
87 postgres|mysql) |
|
7672
cf5d37182dc9
fix: use variable template sub for printf.
John Rouillard <rouilj@ieee.org>
parents:
7661
diff
changeset
|
88 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
|
89 exit 1;; |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
90 nuke) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
91 nuke="$arg";; |
|
7672
cf5d37182dc9
fix: use variable template sub for printf.
John Rouillard <rouilj@ieee.org>
parents:
7661
diff
changeset
|
92 *) printf "Unknown argument %s.\n" "$1" |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
93 printf "Usage: demo [template] [db]\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
94 printf " template: one of " |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
95 printf "classic devel jinja2 minimal responsive\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
96 printf " db: one of: sqlite anydbm\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
97 printf "default: classic sqlite\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
98 printf "Exiting\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
99 exit 1 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
100 esac |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
101 shift |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
102 done |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
103 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
104 # 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
|
105 # 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
|
106 # 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
|
107 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
|
108 if [ "$demoArgs" -ne 0 ]; then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
109 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
|
110 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
|
111 printf "'nuke' is not specified.\nExiting.\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
112 exit 1 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
113 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
114 printf "Restarting existing tracker.\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
115 # Restart an existing demo tracker. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
116 exec roundup-demo \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
117 -B 0.0.0.0 \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
118 -p 8080 \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
119 tracker/demo |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
120 else |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
121 # Create new or nuke/create existing tracker. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
122 # Set parameters required to create tracker. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
123 # 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
|
124 # 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
|
125 # specified on the docker run command line. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
126 printf "Creating new tracker.\n" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
127 exec roundup-demo \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
128 -B 0.0.0.0 \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
129 -p 8080 \ |
|
7674
b8aef93178db
fix: quote variable substitution
John Rouillard <rouilj@ieee.org>
parents:
7673
diff
changeset
|
130 -b "$backend" \ |
|
b8aef93178db
fix: quote variable substitution
John Rouillard <rouilj@ieee.org>
parents:
7673
diff
changeset
|
131 --urlport "$PORT_8080" \ |
|
b8aef93178db
fix: quote variable substitution
John Rouillard <rouilj@ieee.org>
parents:
7673
diff
changeset
|
132 -t "$template" \ |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
133 tracker/demo \ |
|
7706
ccb5169ee6ee
fix: do not quote nuke arg
John Rouillard <rouilj@ieee.org>
parents:
7678
diff
changeset
|
134 $nuke |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
135 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
136 ;; |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
137 shell) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
138 if [ "$might_be_interactive" = "false" ]; then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
139 printf \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
140 "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
|
141 exit 3 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
142 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
143 exec /bin/sh;; |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
144 admin) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
145 shift |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
146 exec roundup-admin "$@";; |
|
7707
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
147 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
148 help) |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
149 sed -e 's/^\t\t//' <<EOH |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
150 Example Usage: |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
151 docker run --rm -it -p 127.0.0.1:8917:8080 \\ |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
152 -v $PWD:/usr/src/app/tracker \\ |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
153 --name roundup_demo docker/image ... |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
154 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
155 where ... is: |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
156 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
157 help - this output |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
158 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
159 demo ... - run a demo tracker with optional arguments |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
160 tracker home is in '/usr/src/app/tracker/demo' |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
161 directory. |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
162 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
163 admin ... - start roundup-admin shell or execute following |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
164 arguments. Use '-i tracker/demo' to set tracker |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
165 home. |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
166 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
167 shell - start a unix shell for advanced config |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
168 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
169 roundup-server(1) arguments - at minimum one or more |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
170 tracker=tracker_home/directory |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
171 specifications. See documentation for details. |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
172 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
173 if no arguments are supplied, it will start the guided |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
174 install sequence. See documentation for details. |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
175 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
176 demo Mode Arguments: |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
177 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
178 one optional template name: |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
179 classic, devel, jinja2, minimal, responsive |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
180 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
181 one optional database backend: |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
182 sqlite, anydbm |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
183 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
184 the term 'nuke' to destroy demo tracker and start over |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
185 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
186 Other docker CLI Arguments: |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
187 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
188 --env SHELL_DEBUG=1 - enable debug output from startup script |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
189 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
190 EOH |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
191 exit 0 |
|
36c3acb4b49b
feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents:
7706
diff
changeset
|
192 ;; |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
193 *) |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
194 # we just continue. Allow setting CMD to: |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
195 # -i index_template issue=tracker |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
196 # for example. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
197 continue |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
198 esac |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
199 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
200 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
201 # 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
|
202 # install or initialize it. |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
203 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
204 # 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
|
205 if [ ! -d "$directory" ]; then |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
206 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
|
207 "$directory" "$tracker" |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
208 exit 1 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
209 fi |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
210 |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
211 # 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
|
212 # 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
|
213 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
|
214 then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
215 if [ -e "$directory/config.ini" ]; then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
216 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
|
217 parameters.\n" "$directory" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
218 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
|
219 exit 3 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
220 fi |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
221 |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
222 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
|
223 roundup-admin -i "$directory" install |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
224 do_exit=1 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
225 fi |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
226 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
227 # 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
|
228 # 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
|
229 # 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
|
230 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
|
231 printf "Initializing tracker %s\n" "$tracker" |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
232 if ! roundup-admin -i "$directory" init; then |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
233 # something went wrong. |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
234 # verify it looks like a tracker directory |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
235 # then remove the database directory |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
236 test -e "$directory/TEMPLATE-INFO.txt" && \ |
|
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
237 rm -rf "$directory/db" |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
238 fi |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
239 do_exit=1 |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
240 fi |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
241 done # for "$@" |
|
6555
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
242 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
243 # 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
|
244 if [ $do_exit = 0 ]; then |
|
7340
7b9bddda9d2d
Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents:
6581
diff
changeset
|
245 # 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
|
246 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
|
247 fi |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
248 |
|
34cbd0e633d2
Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff
changeset
|
249 exit 0 |
