37 lines
1.6 KiB
Bash
37 lines
1.6 KiB
Bash
##@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é.
|
|
cgiscriptdir="$(dirname "$0")"
|
|
if [ "$(uname -s)" == Linux ]; then
|
|
script="$(readlink -f -- "$0")"
|
|
scriptdir="$(dirname -- "$script")"
|
|
scriptname="$(basename -- "$script")"
|
|
elif [ -L "$0" ]; then
|
|
# Sur un système autre que linux, readlink -f n'existe sans doute pas.
|
|
# On ne supporte que le cas où le script lui-même est un lien symbolique, et
|
|
# on fait implémentation limitée de readlink -f: 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")"
|
|
script="$scriptdir/$scriptname"
|
|
else
|
|
scriptdir="$(dirname -- "$0")"
|
|
scriptdir="$(cd "$scriptdir"; pwd)"
|
|
scriptname="$(basename -- "$0")"
|
|
script="$scriptdir/$scriptname"
|
|
fi
|
|
UTOOLS_HAVE_SCRIPTVARS=1
|
|
# Juste après avoir inclu ce fichier, il faut rajouter une ligne comme celle-ci
|
|
# pour charger ulib:
|
|
#source "$scriptdir/ulib/auto"
|