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é.
 | |
| 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")"
 | |
|         script="$scriptdir/$scriptname"
 | |
|     fi
 | |
| 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"
 | 
