annotate scripts/Docker/roundup_start @ 8519:19152fd94fcf

bug: move import findargspec out of Permission __init__ method We have a few places where imports are done inside a method/function. For methods that are called once it's not an issue but the Permissions __init__ method is called often and accounts for > 10% of the time in the __init__ function when looking at wsgi-lineprof output. So move it to the module level.
author John Rouillard <rouilj@ieee.org>
date Mon, 02 Feb 2026 23:41:36 -0500
parents c6fcc8ba478a
children
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
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

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