remanier le support des scripts cgi accédés par un lien symbolique
This commit is contained in:
parent
18253318d8
commit
41d86b69d3
29
ulib/base
29
ulib/base
|
@ -3,7 +3,11 @@
|
||||||
##@cooked nocomments
|
##@cooked nocomments
|
||||||
|
|
||||||
# Emplacement du script courant
|
# Emplacement du script courant
|
||||||
if [ "$0" == "-bash" ]; then
|
if [ -n "$UTOOLS_HAVE_SCRIPTVARS" ]; then
|
||||||
|
# ne pas mettre à jour script, scriptname, scriptdir. Ils ont déjà été
|
||||||
|
# calculés
|
||||||
|
:
|
||||||
|
elif [ "$0" == "-bash" ]; then
|
||||||
scriptname=
|
scriptname=
|
||||||
scriptdir=
|
scriptdir=
|
||||||
script=
|
script=
|
||||||
|
@ -3924,29 +3928,6 @@ if [ -n "$UTOOLS_CHROOT" ]; then
|
||||||
[ -n "$UTOOLS_UNAME_MACHINE" ] && eval "UNAME_MACHINE=$UTOOLS_UNAME_MACHINE"
|
[ -n "$UTOOLS_UNAME_MACHINE" ] && eval "UNAME_MACHINE=$UTOOLS_UNAME_MACHINE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
################################################################################
|
|
||||||
## Support de CGI
|
|
||||||
|
|
||||||
# Si on est lancé comme script cgi par un lien, il faut résoudre l'emplacement
|
|
||||||
# réel du script. Si on a besoin des fichiers du répertoire CGI, il est toujours
|
|
||||||
# possible d'utiliser cgiscriptdir
|
|
||||||
if [ -n "$GATEWAY_INTERFACE" -a -L "$script" ]; then
|
|
||||||
# garder une copie de la valeur originale de scriptdir
|
|
||||||
cgiscriptdir="$scriptdir"
|
|
||||||
if [ "$UNAME_SYSTEM" == Linux ]; then
|
|
||||||
script="$(readlink -f -- "$script")"
|
|
||||||
else
|
|
||||||
# Sur un système autre que linux, readlink -f n'existe sans doute pas.
|
|
||||||
# Essayer de l'émuler: si le lien est relatif, l'exprimer par rapport à
|
|
||||||
# $scriptdir. Ne prendre qu'un seul niveau de lien symbolique.
|
|
||||||
script="$(readlink -- "$script")"
|
|
||||||
[ "${script#/}" != "$script" ] || script="$scriptdir/$script"
|
|
||||||
fi
|
|
||||||
scriptname="$(basename -- "$script")"
|
|
||||||
scriptdir="$(dirname -- "$script")"
|
|
||||||
scriptdir="$(cd "$scriptdir"; pwd)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
## support de ulib dans le cas où cette librairie n'est pas encore chargée
|
## support de ulib dans le cas où cette librairie n'est pas encore chargée
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
## Support des scripts CGI attaqués par un lien symbolique
|
||||||
|
##@cooked nocomments
|
||||||
|
# Ce fichier doit être inclu avec uinc
|
||||||
|
# Si le script qui inclu ce fichier est lancé comme script CGI par un lien, il
|
||||||
|
# doit pouvoir accéder à ses fichiers de support à partir de son répertoire
|
||||||
|
# d'origine. Ce fichier permet de s'assurer que scriptdir a la bonne valeur.
|
||||||
|
# cgiscriptdir contient la valeur d'origine, c'est à dire le répertoire cgi à
|
||||||
|
# partir duquel le script est lancé.
|
||||||
|
if [ -L "$0" ]; then
|
||||||
|
cgiscriptdir="$(dirname "$0")"
|
||||||
|
if [ "$(uname -s)" == Linux ]; then
|
||||||
|
script="$(readlink -f -- "$0")"
|
||||||
|
scriptdir="$(dirname -- "$script")"
|
||||||
|
scriptname="$(basename -- "$script")"
|
||||||
|
else
|
||||||
|
# Sur un système autre que linux, readlink -f n'existe sans doute pas.
|
||||||
|
# Essayer de l'émuler: si le lien est relatif, l'exprimer par rapport à
|
||||||
|
# $scriptdir. Ne prendre qu'un seul niveau de lien symbolique.
|
||||||
|
script="$(readlink -- "$0")"
|
||||||
|
[ "${script#/}" != "$script" ] || script="$cgiscriptdir/$script"
|
||||||
|
scriptdir="$(dirname -- "$script")"
|
||||||
|
scriptdir="$(cd "$scriptdir"; pwd)"
|
||||||
|
scriptname="$(basename -- "$script")"
|
||||||
|
fi
|
||||||
|
UTOOLS_HAVE_SCRIPTVARS=1
|
||||||
|
fi
|
||||||
|
# Juste après avoir inclu ce fichier, il faut rajouter une ligne comme celle-ci
|
||||||
|
# pour charger ulib:
|
||||||
|
#source "$scriptdir/ulib/auto"
|
Loading…
Reference in New Issue