##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 ## Gestion du service apache et de sa configuration ##@cooked nocomments ##@require base ##@require sysinfos uprovide apache urequire base sysinfos function __apache_prefixes_checkdir() { local dir for dir in "$@"; do if [ -d "$dir" ]; then echo "$dir" return 0 fi done return 1 } function __apache_prefixes_checkfile() { local file for file in "$@"; do if [ -f "$file" ]; then echo "$file" return 0 fi done return 1 } function __apache_prefixes_checkexec() { local exec for exec in "$@"; do if [ -x "$exec" ]; then echo "$exec" return 0 fi done return 1 } function get_default_apachebin_prefix() { __apache_prefixes_checkexec /usr/sbin/{apache2,apache,httpd} } function get_default_apacheversion_prefix() { [ -n "$APACHEBIN" ] || return local version="$($APACHEBIN -v | grep version:)" if [[ "$version" == *1.3* ]]; then echo "" elif [[ "$version" == *2.0* ]]; then echo "2" elif [[ "$version" == *2.2* ]]; then echo "2.2" elif [[ "$version" == *2.4* ]]; then echo "2.4" fi } function get_default_apachectl_prefix() { [ -n "$APACHEBIN" ] || return __apache_prefixes_checkexec "$(dirname "$APACHEBIN")"/apache*ctl } function get_default_apachelogdir_prefix() { if check_sysinfos -s darwin; then __apache_prefixes_checkdir /var/log/{apache2,httpd} elif check_sysinfos -s linux; then if check_sysinfos -d debianlike; then __apache_prefixes_checkdir /var/log/{apache2,apache} elif check_sysinfos -d redhatlike; then __apache_prefixes_checkdir /var/log/httpd elif check_sysinfos -d gentoo; then # XXX à vérifier __apache_prefixes_checkdir /var/log/{apache{2,},httpd} fi fi } function get_default_apachesslcertsdir_prefix() { if check_sysinfos -s darwin; then __apache_prefixes_checkdir /etc/{apache2,httpd}/ssl.crt elif check_sysinfos -s linux; then __apache_prefixes_checkdir /etc/ssl/certs /etc/pki/tls/certs /etc/httpd/conf/ssl.crt fi } function get_default_apachesslkeysdir_prefix() { if check_sysinfos -s darwin; then __apache_prefixes_checkdir /etc/{apache2,httpd}/ssl.key elif check_sysinfos -s linux; then __apache_prefixes_checkdir /etc/ssl/private /etc/pki/tls/private /etc/httpd/conf/ssl.key fi } function get_default_apacheconfdir_prefix() { if check_sysinfos -s darwin; then __apache_prefixes_checkdir /etc/{apache2,httpd} elif check_sysinfos -s linux; then if check_sysinfos -d debianlike; then __apache_prefixes_checkdir /etc/{apache{2,,-ssl},httpd} elif check_sysinfos -d redhatlike; then __apache_prefixes_checkdir /etc/httpd elif check_sysinfos -d gentoo; then __apache_prefixes_checkdir /etc/{apache{2,},httpd} fi fi } function get_default_apacheconf_prefix() { [ -n "$APACHECONFDIR" ] || return __apache_prefixes_checkfile "$APACHECONFDIR"/{apache2,{,conf/}httpd}.conf } function get_default_apacheavsitesdir_prefix() { [ -n "$APACHECONFDIR" ] || return if check_sysinfos -s darwin; then __apache_prefixes_checkdir "$APACHECONFDIR/sites_disabled" elif check_sysinfos -d debianlike gentoo; then __apache_prefixes_checkdir "$APACHECONFDIR/sites-available" fi } function get_default_apachesitesdir_prefix() { if check_sysinfos -s darwin; then __apache_prefixes_checkdir "$APACHECONFDIR/sites" elif check_sysinfos -d debianlike gentoo; then __apache_prefixes_checkdir "$APACHECONFDIR/sites-enabled" fi } function get_default_htdocsdir_prefix() { if check_sysinfos -s darwin; then __apache_prefixes_checkdir /Library/WebServer/Documents elif check_sysinfos -s linux; then if check_sysinfos -d debianlike; then __apache_prefixes_checkdir /var/www elif check_sysinfos -d redhatlike; then __apache_prefixes_checkdir /var/www/html elif check_sysinfos -d gentoo; then __apache_prefixes_checkdir /var/www/localhost/htdocs fi fi } function get_default_cgibindir_prefix() { if check_sysinfos -s darwin; then __apache_prefixes_checkdir /Library/WebServer/CGI-Executables elif check_sysinfos -s linux; then if check_sysinfos -d debianlike; then __apache_prefixes_checkdir /usr/lib/cgi-bin elif check_sysinfos -d redhatlike; then __apache_prefixes_checkdir /var/www/cgi-bin elif check_sysinfos -d gentoo; then __apache_prefixes_checkdir /var/www/localhost/cgi-bin fi fi } __apache_prefixes= function __compute_apache_prefixes() { [ -n "$__apache_prefixes" ] && return APACHEBIN="${APACHEBIN:-$(get_default_apachebin_prefix)}" APACHEVERSION="${APACHEVERSION:-$(get_default_apacheversion_prefix)}" APACHECTL="${APACHECTL:-$(get_default_apachectl_prefix)}" APACHELOGDIR="${APACHELOGDIR:-$(get_default_apachelogdir_prefix)}" APACHESSLCERTSDIR="${APACHESSLCERTSDIR:-$(get_default_apachesslcertsdir_prefix)}" APACHESSLKEYSDIR="${APACHESSLKEYSDIR:-$(get_default_apachesslkeysdir_prefix)}" APACHECONFDIR="${APACHECONFDIR:-$(get_default_apacheconfdir_prefix)}" APACHECONF="${APACHECONF:-$(get_default_apacheconf_prefix)}" APACHEAVSITESDIR="${APACHEAVSITESDIR:-$(get_default_apacheavsitesdir_prefix)}" APACHESITESDIR="${APACHESITESDIR:-$(get_default_apachesitesdir_prefix)}" HTDOCSDIR="${HTDOCSDIR:-$(get_default_htdocsdir_prefix)}" CGIBINDIR="${CGIBINDIR:-$(get_default_cgibindir_prefix)}" __apache_prefixes=1 } UTOOLS_PREFIXES=("${UTOOLS_PREFIXES[@]}" APACHEBIN APACHEVERSION APACHECTL APACHELOGDIR APACHESSLCERTSDIR APACHESSLKEYSDIR APACHECONFDIR APACHECONF APACHEAVSITESDIR APACHESITESDIR HTDOCSDIR CGIBINDIR) function compute_apache_prefixes() { __compute_apache_prefixes } function recompute_apache_prefixes() { __apache_prefixes= __compute_apache_prefixes } function get_APACHEBIN_prefix() { __compute_apache_prefixes echo "$APACHEBIN" } function get_APACHEVERSION_prefix() { __compute_apache_prefixes echo "$APACHEVERSION" } function get_APACHECTL_prefix() { __compute_apache_prefixes echo "$APACHECTL" } function get_APACHELOGDIR_prefix() { __compute_apache_prefixes echo "$APACHELOGDIR" } function get_APACHESSLCERTSDIR_prefix() { __compute_apache_prefixes echo "$APACHESSLCERTSDIR" } function get_APACHESSLKEYSDIR_prefix() { __compute_apache_prefixes echo "$APACHESSLKEYSDIR" } function get_APACHECONFDIR_prefix() { __compute_apache_prefixes echo "$APACHECONFDIR" } function get_APACHECONF_prefix() { __compute_apache_prefixes echo "$APACHECONF" } function get_APACHEAVSITESDIR_prefix() { __compute_apache_prefixes echo "$APACHEAVSITESDIR" } function get_APACHESITESDIR_prefix() { __compute_apache_prefixes echo "$APACHESITESDIR" } function get_HTDOCSDIR_prefix() { __compute_apache_prefixes echo "$HTDOCSDIR" } function get_CGIBINDIR_prefix() { __compute_apache_prefixes echo "$CGIBINDIR" }