nutools/legacy/instinc/prefixes

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
}