annotate scripts/Docker/roundup_start @ 7800:2d4684e4702d

fix: enhancement to history command output and % template fix. Rather than using the key field, use the label field for descriptions. Call cls.labelprop(default_to_id=True) so it returns id rather than the first sorted property name. If labelprop() returns 'id' or 'title', we return nothing. 'id' means there is no label set and no properties named 'name' or 'title'. So have the caller do whatever it wants (prepend classname for example) when there is no human readable name. This prevents %(name)s%(key)s from producing: 23(23). Also don't accept the 'title' property. Titles can be too long. Arguably we could: '%(name)20s' to limit the title length. However without ellipses or something truncating the title might be confusing. So again pretend there is no human readable name.
author John Rouillard <rouilj@ieee.org>
date Tue, 12 Mar 2024 11:52:17 -0400
parents 36c3acb4b49b
children c6fcc8ba478a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 \
7706
ccb5169ee6ee fix: do not quote nuke arg
John Rouillard <rouilj@ieee.org>
parents: 7678
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 "$@";;
7707
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
145
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
146 help)
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
147 sed -e 's/^\t\t//' <<EOH
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
148 Example Usage:
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
149 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
150 -v $PWD:/usr/src/app/tracker \\
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
151 --name roundup_demo docker/image ...
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
152
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
153 where ... is:
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 help - this output
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 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
158 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
159 directory.
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
160
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
161 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
162 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
163 home.
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
164
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
165 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
166
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
167 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
168 tracker=tracker_home/directory
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
169 specifications. See documentation for details.
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
170
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
171 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
172 install sequence. See documentation for details.
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
173
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
174 demo Mode Arguments:
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 one optional template name:
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
177 classic, devel, jinja2, minimal, responsive
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
178
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
179 one optional database backend:
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
180 sqlite, anydbm
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
181
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
182 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
183
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
184 Other docker CLI Arguments:
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 --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
187
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
188 EOH
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
189 exit 0
36c3acb4b49b feat: add help argument for docker image
John Rouillard <rouilj@ieee.org>
parents: 7706
diff changeset
190 ;;
7340
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
191 *)
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
192 # we just continue. Allow setting CMD to:
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
193 # -i index_template issue=tracker
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
194 # for example.
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
195 continue
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
196 esac
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
197 fi
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
198
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
199 # 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
200 # install or initialize it.
6555
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
201
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
202 # 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
203 if [ ! -d "$directory" ]; then
7340
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
204 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
205 "$directory" "$tracker"
6555
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
206 exit 1
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
207 fi
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
208
7340
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
209 # 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
210 # 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
211 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
212 then
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
213 if [ -e "$directory/config.ini" ]; then
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
214 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
215 parameters.\n" "$directory"
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
216 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
217 exit 3
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
218 fi
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
219
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
220 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
221 roundup-admin -i "$directory" install
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
222 do_exit=1
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
223 fi
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
224
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
225 # 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
226 # 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
227 # 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
228 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
229 printf "Initializing tracker %s\n" "$tracker"
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
230 if ! roundup-admin -i "$directory" init; then
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
231 # something went wrong.
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
232 # verify it looks like a tracker directory
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
233 # then remove the database directory
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
234 test -e "$directory/TEMPLATE-INFO.txt" && \
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
235 rm -rf "$directory/db"
6555
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
236 fi
7340
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
237 do_exit=1
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 done # for "$@"
6555
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
240
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
241 # 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
242 if [ $do_exit = 0 ]; then
7340
7b9bddda9d2d Add support for demo mode in docker.
John Rouillard <rouilj@ieee.org>
parents: 6581
diff changeset
243 # 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
244 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
245 fi
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
246
34cbd0e633d2 Added FastCGI deployment info, updated Docker docs; docker-compose added
John Rouillard <rouilj@ieee.org>
parents:
diff changeset
247 exit 0

Roundup Issue Tracker: http://roundup-tracker.org/