#!/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

# Faire une copie de ce script dans un répertoire de l'application web
# (par défaut c'est le répertoire _cli/) et paramétrer les variables suivantes:
# ce sont tous des chemins relatif au répertoire qui contient ce script

# Chemin relatif de la racine du projet
PROJPATH=..

# Chemin relatif vers le lanceur PHP
LAUNCHERPATH=_cli_simple_launcher.php

# Chemin relatif des scripts PHP wrappés
WRAPPEDPATH=

###############################################################################
if [ ! -L "$0" ]; then
    echo "\
$0: ce script
- doit être lancé en tant que lien symbolique avec un nom de la forme 'monscript.php'
- lance le script PHP du même nom situé dans le même répertoire avec l'utilisateur www-data"
    exit 0
fi

MYNAME="$(basename -- "$0")"
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"

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
