# TODO Faire une copie de ce script dans un répertoire de l'application web # (dans le répertoire _cli/ par défaut) et modifier les paramétres si nécessaire #------------------------------------------------------------------------------- #!/bin/bash # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 # S'assurer que le script PHP est lancé avec l'utilisateur www-data # Tous les chemins suivants sont relatifs au répertoire qui contient ce script # Chemin relatif de la racine du projet PROJPATH=.. # Chemin relatif vers le lanceur PHP LAUNCHERPATH=_launcher.php # Chemin relatif des scripts PHP wrappés WRAPPEDPATH= ############################################################################### MYDIR="$(dirname -- "$0")" MYNAME="$(basename -- "$0")" if [ ! -L "$0" ]; then echo "\ $0 Ce script doit être lancé en tant que lien symbolique avec un nom de la forme 'monscript.php' et lance le script PHP du même nom situé dans le même répertoire avec l'utilisateur www-data Installation des liens manquants..." cd "$MYDIR" for i in *.php*; do name="bin/${i%.*}.php" dest="../_cli/$i" link="../bin/${i%.*}.php" [ -e "$link" ] && continue echo "* $name" ln -s "$dest" "$link" || exit 1 done exit 0 fi MYTRUESELF="$(readlink -f "$0")" MYTRUEDIR="$(dirname -- "$MYTRUESELF")" PROJDIR="$(cd "$MYTRUEDIR${PROJPATH:+/$PROJPATH}"; pwd)" launcher="$MYTRUEDIR/$LAUNCHERPATH" class="$MYTRUEDIR${WRAPPEDPATH:+/$WRAPPEDPATH}/${MYNAME%.php}.phpc" script="$MYTRUEDIR${WRAPPEDPATH:+/$WRAPPEDPATH}/${MYNAME%.php}.php" [ -f /g/init.env ] && source /g/init.env www_data="${DEVUSER_USERENT%%:*}" [ -n "$www_data" ] || www_data=www-data cmd=(php "$launcher") [ -n "$MEMPROF_PROFILE" ] && cmd+=(-dextension=memprof.so) if [ -f "$class" ]; then cmd+=("$(<"$class")") else cmd+=("$script") fi cmd+=("$@") if [ "$(id -u)" -eq 0 ]; then su-exec "$www_data" "${cmd[@]}" else exec "${cmd[@]}" fi