X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=webapps.sh;h=8ec93b03136a6cb1f5a44af860313f5cb233b818;hb=8c4d9d9a57fbd25b6040e389ea523cf4657111b7;hp=ce5f82bfca0cd286a140d936e88921633215ee9b;hpb=64efe5c9eb0b58ab3804319a6ea3ff6299fd3e7c;p=packages%2Fwebapps.git diff --git a/webapps.sh b/webapps.sh old mode 100644 new mode 100755 index ce5f82b..8ec93b0 --- a/webapps.sh +++ b/webapps.sh @@ -1,5 +1,7 @@ #!/bin/sh + webapps=/etc/webapps +webservers='apache httpd lighttpd' action="$1" httpd="$2" app="$3" @@ -10,7 +12,7 @@ webapp_link() { webapp_register() { local link=$(webapp_link $app) - ln -sf $webapps/$app/$httpd.conf /etc/$httpd/webapps.d/$link.conf + ln -sf ../../..$webapps/$app/$httpd.conf /etc/$httpd/webapps.d/$link.conf } webapp_unregister() { @@ -18,12 +20,85 @@ webapp_unregister() { rm -f /etc/$httpd/webapps.d/$link.conf } +webapp_list() { + echo "registered webapps${1:+ for $1}": + for server in ${1:-$webservers}; do + [ -d /etc/$server/webapps.d ] || continue + echo "$server:" + for conf in /etc/$server/webapps.d/*; do + [ -L $conf ] || continue + app=$(readlink -f $conf | sed -e "s,$webapps/,,;s,/$server.conf$,,") + echo "- $app" + done + done +} + +# return registered application list for webserver +# useful for bash_completion parsing +webapp_apps_registered() { + local action="$1" + local server=$2 + + for conf in /etc/$server/webapps.d/*.conf; do + [ -L $conf ] || continue + appname=$(readlink $conf) + appname=${appname#*$webapps/} + appname=${appname%/$server.conf} + [ -f /etc/webapps/$appname/$server.conf ] || continue + echo $appname + done +} + +# return application list for webserver +# useful for bash_completion parsing +webapp_applist() { + local action="$1" + local server=$2 + + for app in /etc/webapps/*; do + [ -d $app ] || continue + [ -f $app/$server.conf ] || continue + local appname=${app##*/} + local link=$(webapp_link $appname) + + case "$action" in + *-registered) + [ -f /etc/$server/webapps.d/$link.conf ] && echo $appname + ;; + *-unregistered) + [ -f /etc/$server/webapps.d/$link.conf ] || echo $appname + ;; + *) + echo $appname + ;; + esac + done +} + +webapp_list_apps() { + echo "available webapps" + for app in /etc/webapps/*; do + [ -d $app ] || continue + + servers="" + for server in $webservers; do + [ -f $app/$server.conf ] || continue + servers="$servers${servers:+ }$server" + done + + [ "$servers" ] || continue + echo "- ${app##*/} ($servers)" + done +} + usage() { cat >&2 <