]> git.pld-linux.org Git - packages/webapps.git/blob - webapps.sh
- warn user having partial upgrade that he's doomed; rel 4
[packages/webapps.git] / webapps.sh
1 #!/bin/sh
2 webapps=/etc/webapps
3 webservers='apache httpd lighttpd'
4 action="$1"
5 httpd="$2"
6 app="$3"
7
8 webapp_link() {
9         echo "$1" | tr '/' '-'
10 }
11
12 webapp_register() {
13         local link=$(webapp_link $app)
14         ln -sf $webapps/$app/$httpd.conf /etc/$httpd/webapps.d/$link.conf
15 }
16
17 webapp_unregister() {
18         local link=$(webapp_link $app)
19         rm -f /etc/$httpd/webapps.d/$link.conf
20 }
21
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
35 usage() {
36         cat >&2 <<EOF
37 Usage: $0 register httpd webapp
38 Usage: $0 register httpd webapp/module
39 Usage: $0 unregister httpd webapp
40 Usage: $0 unregister httpd webapp/module
41
42 Where httpd is one of the webservers
43 apache 1.x: apache
44 apache 2.x: httpd
45 lighttpd: lighttpd
46
47 webapp modules are supported,
48 drupal tinymce module webapp name would be drupal/tinymce.
49 EOF
50 }
51
52 die() {
53         echo >&2 "$0: $*"
54         exit 1
55 }
56
57 checkconfig() {
58         if [ -z "$httpd" ] || [ -z "$app" ]; then
59                 usage
60                 return
61         fi
62
63         # sanity check
64         if [ ! -d "$webapps/$app" ]; then
65                 die "'$app' is not webapp? (Missing directory: $webapps/$app)"
66         fi
67         if [ ! -d "/etc/$httpd/webapps.d" ]; then
68                 die "'$httpd' is not a webserver? (Missing directory: /etc/$httpd/webapps.d)"
69         fi
70 }
71
72 case "$action" in
73 register)
74         checkconfig
75         webapp_register
76         ;;
77 unregister)
78         checkconfig
79         webapp_unregister
80         ;;
81 list)
82         webapp_list $2
83         ;;
84 *)
85         usage
86         exit 1
87 esac
This page took 0.049485 seconds and 3 git commands to generate.