+ local link=$(webapp_link $app)
+ 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