]>
Commit | Line | Data |
---|---|---|
e9689537 ER |
1 | #!/bin/sh |
2 | webapps=/etc/webapps | |
2ec41251 | 3 | webservers='apache httpd lighttpd' |
e9689537 | 4 | action="$1" |
f21ce9bd | 5 | httpd="$2" |
e9689537 ER |
6 | app="$3" |
7 | ||
64efe5c9 ER |
8 | webapp_link() { |
9 | echo "$1" | tr '/' '-' | |
10 | } | |
11 | ||
e9689537 | 12 | webapp_register() { |
64efe5c9 ER |
13 | local link=$(webapp_link $app) |
14 | ln -sf $webapps/$app/$httpd.conf /etc/$httpd/webapps.d/$link.conf | |
e9689537 ER |
15 | } |
16 | ||
17 | webapp_unregister() { | |
64efe5c9 ER |
18 | local link=$(webapp_link $app) |
19 | rm -f /etc/$httpd/webapps.d/$link.conf | |
e9689537 ER |
20 | } |
21 | ||
2ec41251 ER |
22 | webapp_list() { |
23 | echo "registered webapps${1:+ for $1}": | |
24 | for server in ${1:-$webservers}; do | |
25 | [ -d /etc/$server/webapps.d ] || continue | |
26 | echo "$server:" | |
27 | for conf in /etc/$server/webapps.d/*; do | |
28 | [ -L $conf ] || continue | |
29 | app=$(readlink $conf | sed -e "s,$webapps/,,;s,/$server.conf$,,") | |
30 | echo "- $app" | |
31 | done | |
32 | done | |
33 | } | |
34 | ||
e9689537 ER |
35 | usage() { |
36 | cat >&2 <<EOF | |
f21ce9bd | 37 | Usage: $0 register httpd webapp |
64efe5c9 | 38 | Usage: $0 register httpd webapp/module |
f21ce9bd | 39 | Usage: $0 unregister httpd webapp |
64efe5c9 | 40 | Usage: $0 unregister httpd webapp/module |
f21ce9bd | 41 | |
a715016d | 42 | Where httpd is one of the webservers |
f21ce9bd ER |
43 | apache 1.x: apache |
44 | apache 2.x: httpd | |
45 | lighttpd: lighttpd | |
64efe5c9 ER |
46 | |
47 | webapp modules are supported, | |
48 | drupal tinymce module webapp name would be drupal/tinymce. | |
e9689537 ER |
49 | EOF |
50 | } | |
51 | ||
a715016d ER |
52 | die() { |
53 | echo >&2 "$0: $*" | |
54 | exit 1 | |
55 | } | |
56 | ||
57 | checkconfig() { | |
cd3edc5c ER |
58 | if [ -z "$httpd" ] || [ -z "$app" ]; then |
59 | usage | |
60 | return | |
61 | fi | |
62 | ||
a715016d ER |
63 | # sanity check |
64 | if [ ! -d "$webapps/$app" ]; then | |
cd3edc5c | 65 | die "'$app' is not webapp? (Missing directory: $webapps/$app)" |
a715016d | 66 | fi |
5ec58d25 | 67 | if [ ! -d "/etc/$httpd/webapps.d" ]; then |
cd3edc5c | 68 | die "'$httpd' is not a webserver? (Missing directory: /etc/$httpd/webapps.d)" |
a715016d ER |
69 | fi |
70 | } | |
71 | ||
e9689537 ER |
72 | case "$action" in |
73 | register) | |
a715016d | 74 | checkconfig |
d91deb44 | 75 | webapp_register |
e9689537 ER |
76 | ;; |
77 | unregister) | |
a715016d | 78 | checkconfig |
d91deb44 | 79 | webapp_unregister |
e9689537 | 80 | ;; |
2ec41251 ER |
81 | list) |
82 | webapp_list $2 | |
83 | ;; | |
e9689537 ER |
84 | *) |
85 | usage | |
86 | exit 1 | |
87 | esac |