30 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			2.0 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="$(cd "$(dirname -- "$0")"; pwd)"
 | 
						|
cgiscriptname="$(basename -- "$0")"
 | 
						|
if [ "$(uname -s)" == Linux ]; then
 | 
						|
    script="$(readlink -f -- "$0")"
 | 
						|
else
 | 
						|
    # Sur un système autre que linux, les options avancées (-f, -e, -m) de
 | 
						|
    # readlink n'existent sans doute pas.  Implémenter en bash l'équivalent de
 | 
						|
    # readlink -m
 | 
						|
    script="$(
 | 
						|
        function __normpath() { local p="$1" np f; [ "${p#/}" == "$p" ] && p="$(pwd)/$p"; while [[ "$p" == *//* ]]; do p="${p//\/\///}"; done; p="${p%/}"; p="${p#/}"; np=; while [ -n "$p" ]; do if [[ "$p" == */* ]]; then f="${p%%/*}"; p="${p#*/}"; else f="$p"; p=; fi; if [ "$f" == . ]; then :; elif [ "$f" == .. ]; then if [[ "$np" == */* ]]; then np="${np%/*}"; else np=; fi; else [ -n "$np" ] && np="$np/"; np="$np$f"; fi; done; echo "/$np"; }
 | 
						|
        function __readlinkm() { local p="$(__normpath "$1")" np n; while [ -n "$p" ]; do local max=50; while [ -L "$p" -a $max -gt 0 ]; do n="$(readlink "$p")"; if [ "${n#/}" != "$n" ]; then p="$n"; else p="${p%/*}/$n"; fi; p="$(__normpath "$p")"; max=$(($max-1)); done; [ -n "$np" ] && np="/$np"; if [[ "$p" == */* ]]; then np="${p##*/}$np"; p="${p%/*}"; else np="$p$np"; p=; fi; done; echo "/$np"; }
 | 
						|
        __readlinkm "$0"
 | 
						|
    )"
 | 
						|
fi
 | 
						|
scriptdir="$(dirname -- "$script")"
 | 
						|
scriptname="$(basename -- "$script")"
 | 
						|
UTOOLS_HAVE_SCRIPTVARS=1
 | 
						|
# Juste après avoir inclu ce fichier, on peut rajouter une ligne comme celle-ci
 | 
						|
# pour charger ulib:
 | 
						|
#source "$scriptdir/ulib/auto"
 |