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