416 lines
11 KiB
Bash
416 lines
11 KiB
Bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
|
##@require sysinc/base
|
|
##@require sysinc/functions
|
|
##@require sysinc/java
|
|
|
|
if [ "$SYSTEM_NAME" == "Darwin" ]; then
|
|
# valeurs par défaut de NEXT_ROOT, WOROOT et LOCALROOT sur MacOS X
|
|
DEFAULT_NEXT_ROOT=
|
|
function get_default_woroot() { echo $NEXT_ROOT/System; }
|
|
function get_default_localroot() { echo $NEXT_ROOT; }
|
|
else
|
|
# valeurs par défaut de NEXT_ROOT, WOROOT et LOCALROOT sur les autres Unix
|
|
DEFAULT_NEXT_ROOT=/opt/Apple
|
|
function get_default_woroot() { echo $NEXT_ROOT; }
|
|
function get_default_localroot() { echo $NEXT_ROOT/Local; }
|
|
fi
|
|
|
|
function get_default_javahome() {
|
|
local GENTOO_VM JAVA_HOME JAVA JAVAC PATH="$PATH"
|
|
__select_default_java
|
|
local javahome
|
|
javahome="$JAVA_HOME"
|
|
|
|
[ -n "$javahome" ] && echo "$javahome"
|
|
}
|
|
|
|
function get_javaextdir() {
|
|
local javaextdir
|
|
if [ "$SYSTEM_NAME" == "Linux" ]; then
|
|
if [ -n "$JAVA_HOME" ]; then
|
|
javaextdir="$JAVA_HOME/jre/lib/ext"
|
|
[ -d "$javaextdir" ] || javaextdir="$JAVA_HOME/lib/ext"
|
|
fi
|
|
elif [ "$SYSTEM_NAME" == "Darwin" ]; then
|
|
javaextdir=/Library/Java/Extensions
|
|
fi
|
|
|
|
[ -n "$javaextdir" -a -d "$javaextdir" ] && echo "$javaextdir"
|
|
}
|
|
|
|
function get_apachebin() {
|
|
local i
|
|
case "$SYSTEM_NAME" in
|
|
Darwin|Linux)
|
|
for i in /usr/sbin/{apache2,apache,httpd}; do
|
|
if [ -x "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
SunOS)
|
|
for i in /usr{/local,}/apache/bin/{apache2,apache,httpd}; do
|
|
if [ -x "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function get_apachectl() {
|
|
local i apachebin="${1:-$(get_apachebin)}"
|
|
for i in "$(dirname "$apachebin")"/apache*ctl; do
|
|
if [ -x "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
}
|
|
|
|
function get_apacheversion() {
|
|
local apachebin="${1:-$(get_apachebin)}"
|
|
if [ -n "$apachebin" ]; then
|
|
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"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
function get_default_apacheconfdir() {
|
|
# Calculer et afficher la valeur par défaut de APACHECONF_DIR, ou une chaine
|
|
# vide si l'on n'a pas pu le détecter automatiquement.
|
|
local i
|
|
case "$SYSTEM_NAME" in
|
|
Darwin)
|
|
echo /etc/httpd
|
|
;;
|
|
Linux)
|
|
case "$LINUX_FLAVOUR" in
|
|
debian)
|
|
for i in /etc/{apache{2,,-ssl},httpd}; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
gentoo)
|
|
for i in /etc/{apache{2,},httpd}; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
;;
|
|
SunOS)
|
|
for i in /usr{/local,}/apache/conf; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function get_apacheconf() {
|
|
local i apacheconfdir="${1:-$(get_default_apacheconfdir)}"
|
|
for i in "$apacheconfdir"/{apache2,httpd}.conf; do
|
|
if [ -f "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
}
|
|
|
|
function get_default_htdocsdir() {
|
|
# Calculer et afficher la valeur par défaut de HTDOCS_DIR, ou une chaine
|
|
# vide si l'on n'a pas pu le détecter automatiquement.
|
|
local i
|
|
case "$SYSTEM_NAME" in
|
|
Darwin)
|
|
echo "/Library/WebServer/Documents"
|
|
;;
|
|
Linux)
|
|
case "$LINUX_FLAVOUR" in
|
|
debian)
|
|
for i in /var/www; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
gentoo)
|
|
for i in /var/www/localhost/htdocs; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
redhat)
|
|
for i in /var/www/html; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
;;
|
|
SunOS)
|
|
for i in /usr{/local,}/apache/htdocs; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function get_default_cgibindir() {
|
|
# Calculer et afficher la valeur par défaut de CGIBIN_DIR, ou une chaine
|
|
# vide si l'on n'a pas pu le détecter automatiquement.
|
|
local i
|
|
case "$SYSTEM_NAME" in
|
|
Darwin)
|
|
echo "/Library/WebServer/CGI-Executables"
|
|
;;
|
|
Linux)
|
|
case "$LINUX_FLAVOUR" in
|
|
debian)
|
|
for i in /usr/lib/cgi-bin; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
gentoo)
|
|
for i in /var/www/localhost/cgi-bin; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
;;
|
|
SunOS)
|
|
for i in /usr{/local,}/apache/cgi-bin; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function get_default_ldapconfdir() {
|
|
# Calculer et afficher la valeur par défaut de LDAPCONF_DIR, ou une chaine
|
|
# vide si l'on n'a pas pu le détecter automatiquement.
|
|
local i
|
|
case "$SYSTEM_NAME" in
|
|
Darwin)
|
|
;;
|
|
Linux)
|
|
case "$LINUX_FLAVOUR" in
|
|
debian)
|
|
for i in /etc/ldap; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
gentoo)
|
|
for i in /etc/openldap; do
|
|
if [ -d "$i" ]; then
|
|
echo "$i"
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
;;
|
|
SunOS)
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function get_default_ldapowner() {
|
|
# Calculer et afficher la valeur par défaut de LDAPOWNER, ou une chaine
|
|
# vide si l'on n'a pas pu le détecter automatiquement.
|
|
local i
|
|
case "$SYSTEM_NAME" in
|
|
Darwin)
|
|
;;
|
|
Linux)
|
|
case "$LINUX_FLAVOUR" in
|
|
debian)
|
|
echo "openldap:openldap"
|
|
;;
|
|
gentoo)
|
|
echo "ldap:ldap"
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
;;
|
|
SunOS)
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function compute_prefixes() {
|
|
NEXT_ROOT="${NEXT_ROOT:-$DEFAULT_NEXT_ROOT}"
|
|
WOROOT="${WOROOT:-$(get_default_woroot)}"
|
|
LOCALROOT="${LOCALROOT:-$(get_default_localroot)}"
|
|
SYSTEMFRAMEWORKS="$WOROOT/Library/Frameworks"
|
|
WOEXTENSIONS="$LOCALROOT/Library/WebObjects/Extensions"
|
|
WOFRAMEWORKS="$LOCALROOT/Library/WebObjects/Applications/Frameworks"
|
|
WOAPPLICATIONS="$LOCALROOT/Library/WebObjects/Applications"
|
|
WOCONFIGURATION="$LOCALROOT/Library/WebObjects/Configuration"
|
|
|
|
JAVA_HOME="${JAVA_HOME:-$(get_default_javahome)}"
|
|
JAVAEXTENSIONS="$(get_javaextdir)"
|
|
|
|
APACHEBIN="${APACHEBIN:-$(get_apachebin)}"
|
|
APACHEVERSION="${APACHEVERSION:-$(get_apacheversion "$APACHEBIN")}"
|
|
APACHECTL="${APACHECTL:-$(get_apachectl "$APACHEBIN")}"
|
|
APACHECONF_DIR="${APACHECONF_DIR:-$(get_default_apacheconfdir)}"
|
|
APACHECONF="${APACHECONF:-$(get_apacheconf "$APACHECONF_DIR")}"
|
|
HTDOCS_DIR="${HTDOCS_DIR:-$(get_default_htdocsdir)}"
|
|
CGIBIN_DIR="${CGIBIN_DIR:-$(get_default_cgibindir)}"
|
|
|
|
LDAPCONF_DIR="${LDAPCONF_DIR:-$(get_default_ldapconfdir)}"
|
|
LDAPOWNER="${LDAPOWNER:-$(get_default_ldapowner)}"
|
|
}
|
|
|
|
PREFIXES=(NEXT_ROOT WOROOT LOCALROOT SYSTEMFRAMEWORKS WOEXTENSIONS WOFRAMEWORKS WOAPPLICATIONS WOCONFIGURATION
|
|
JAVA_HOME JAVAEXTENSIONS
|
|
APACHEBIN APACHEVERSION APACHECTL APACHECONF_DIR APACHECONF HTDOCS_DIR CGIBIN_DIR
|
|
LDAPCONF_DIR LDAPOWNER)
|
|
function NEXT_ROOT_value() {
|
|
[ -z "$NEXT_ROOT" ] && compute_prefixes
|
|
echo "$NEXT_ROOT"
|
|
}
|
|
function WOROOT_value() {
|
|
[ -z "$WOROOT" ] && compute_prefixes
|
|
echo "$WOROOT"
|
|
}
|
|
function LOCALROOT_value() {
|
|
[ -z "$LOCALROOT" ] && compute_prefixes
|
|
echo "$LOCALROOT"
|
|
}
|
|
function SYSTEMFRAMEWORKS_value() {
|
|
[ -z "$SYSTEMFRAMEWORKS" ] && compute_prefixes
|
|
echo "$SYSTEMFRAMEWORKS"
|
|
}
|
|
function WOEXTENSIONS_value() {
|
|
[ -z "$WOEXTENSIONS" ] && compute_prefixes
|
|
echo "$WOEXTENSIONS"
|
|
}
|
|
function WOFRAMEWORKS_value() {
|
|
[ -z "$WOFRAMEWORKS" ] && compute_prefixes
|
|
echo "$WOFRAMEWORKS"
|
|
}
|
|
function WOAPPLICATIONS_value() {
|
|
[ -z "$WOAPPLICATIONS" ] && compute_prefixes
|
|
echo "$WOAPPLICATIONS"
|
|
}
|
|
function WOCONFIGURATION_value() {
|
|
[ -z "$WOCONFIGURATION" ] && compute_prefixes
|
|
echo "$WOCONFIGURATION"
|
|
}
|
|
function JAVA_HOME_value() {
|
|
[ -z "$JAVA_HOME" ] && compute_prefixes
|
|
echo "$JAVA_HOME"
|
|
}
|
|
function JAVAEXTENSIONS_value() {
|
|
[ -z "$JAVAEXTENSIONS" ] && compute_prefixes
|
|
echo "$JAVAEXTENSIONS"
|
|
}
|
|
function APACHEBIN_value() {
|
|
[ -z "$APACHEBIN" ] && compute_prefixes
|
|
echo "$APACHEBIN"
|
|
}
|
|
function APACHEVERSION_value() {
|
|
[ -z "$APACHEVERSION" ] && compute_prefixes
|
|
echo "$APACHEVERSION"
|
|
}
|
|
function APACHECTL_value() {
|
|
[ -z "$APACHECTL" ] && compute_prefixes
|
|
echo "$APACHECTL"
|
|
}
|
|
function APACHECONF_DIR_value() {
|
|
[ -z "$APACHECONF_DIR" ] && compute_prefixes
|
|
echo "$APACHECONF_DIR"
|
|
}
|
|
function APACHECONF_value() {
|
|
[ -z "$APACHECONF" ] && compute_prefixes
|
|
echo "$APACHECONF"
|
|
}
|
|
function HTDOCS_DIR_value() {
|
|
[ -z "$HTDOCS_DIR" ] && compute_prefixes
|
|
echo "$HTDOCS_DIR"
|
|
}
|
|
function CGIBIN_DIR_value() {
|
|
[ -z "$CGIBIN_DIR" ] && compute_prefixes
|
|
echo "$CGIBIN_DIR"
|
|
}
|
|
function LDAPCONF_DIR_value() {
|
|
[ -z "$LDAPCONF_DIR" ] && compute_prefixes
|
|
echo "$LDAPCONF_DIR"
|
|
}
|
|
function LDAPOWNER_value() {
|
|
[ -z "$LDAPOWNER" ] && compute_prefixes
|
|
echo "$LDAPOWNER"
|
|
}
|
|
|
|
function list_prefixes() {
|
|
local prefix
|
|
for prefix in "${PREFIXES[@]}"; do
|
|
echo "$prefix"
|
|
done
|
|
}
|
|
|
|
function expand_prefix() {
|
|
local prefix
|
|
for prefix in "${PREFIXES[@]}"; do
|
|
if beginswith "$1" "$prefix/" || [ "$1" == "$prefix" ]; then
|
|
echo "$(${prefix}_value)${1#$prefix}"
|
|
return
|
|
fi
|
|
done
|
|
echo "$1"
|
|
}
|
|
|
|
function dump_prefixes() {
|
|
local prefix
|
|
for prefix in "${PREFIXES[@]}"; do
|
|
echo "$prefix=$(expand_prefix "$prefix")"
|
|
done
|
|
}
|