nur-sery/support/template-_wrapper.sh

68 lines
1.9 KiB
Bash
Raw Normal View History

2024-10-01 12:35:08 +04:00
# 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
#-------------------------------------------------------------------------------
2024-09-25 17:10:14 +04:00
#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
2024-10-01 12:35:08 +04:00
# 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
2024-09-26 08:48:04 +04:00
2024-09-26 09:38:54 +04:00
# Chemin relatif de la racine du projet
2024-09-26 08:48:04 +04:00
PROJPATH=..
2024-09-26 09:38:54 +04:00
# Chemin relatif vers le lanceur PHP
2024-09-26 19:35:24 +04:00
LAUNCHERPATH=_launcher.php
2024-09-26 08:48:04 +04:00
2024-09-26 09:38:54 +04:00
# Chemin relatif des scripts PHP wrappés
WRAPPEDPATH=
2024-09-26 08:48:04 +04:00
###############################################################################
2024-10-01 12:35:08 +04:00
MYDIR="$(dirname -- "$0")"
MYNAME="$(basename -- "$0")"
2024-09-25 17:10:14 +04:00
if [ ! -L "$0" ]; then
echo "\
2024-10-01 12:37:04 +04:00
$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
2024-10-01 12:35:08 +04:00
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
2024-09-25 17:10:14 +04:00
exit 0
fi
MYTRUESELF="$(readlink -f "$0")"
MYTRUEDIR="$(dirname -- "$MYTRUESELF")"
2024-09-26 08:48:04 +04:00
PROJDIR="$(cd "$MYTRUEDIR${PROJPATH:+/$PROJPATH}"; pwd)"
2024-09-26 09:38:54 +04:00
launcher="$MYTRUEDIR/$LAUNCHERPATH"
class="$MYTRUEDIR${WRAPPEDPATH:+/$WRAPPEDPATH}/${MYNAME%.php}.phpc"
script="$MYTRUEDIR${WRAPPEDPATH:+/$WRAPPEDPATH}/${MYNAME%.php}.php"
2024-09-25 17:10:14 +04:00
2024-09-30 16:22:33 +04:00
[ -f /g/init.env ] && source /g/init.env
2024-09-25 17:10:14 +04:00
www_data="${DEVUSER_USERENT%%:*}"
[ -n "$www_data" ] || www_data=www-data
2024-09-26 09:38:54 +04:00
cmd=(php "$launcher")
2024-09-25 17:10:14 +04:00
[ -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