inclure les template phpwrappers
This commit is contained in:
parent
c8f7f7cbaa
commit
9676be2dd6
@ -1,39 +0,0 @@
|
||||
#!/bin/bash
|
||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
source "$(dirname -- "$0")/../../load.sh" || exit 1
|
||||
|
||||
declare -A DESTDIRS=(
|
||||
[template-_bg_launcher.php]=sbin
|
||||
[template-.launcher.php]=_cli
|
||||
[template-_wrapper.sh]=_cli
|
||||
)
|
||||
declare -A MODES=(
|
||||
[template-_bg_launcher.php]=+x
|
||||
[template-.launcher.php]=
|
||||
[template-_wrapper.sh]=+x
|
||||
)
|
||||
|
||||
projdir=
|
||||
args=(
|
||||
"copier les templates dans le projet en cours"
|
||||
#"usage"
|
||||
-d:,--projdir: .
|
||||
)
|
||||
parse_args "$@"; set -- "${args[@]}"
|
||||
|
||||
if [ -n "$projdir" ]; then
|
||||
cd "$projdir" || die
|
||||
fi
|
||||
|
||||
[ -f composer.json ] || die "$(basename "$(dirname "$(pwd)")"): n'est pas un projet composer"
|
||||
|
||||
setx -a templates=ls_files "$MYDIR" "template-*"
|
||||
for template in "${templates[@]}"; do
|
||||
destdir="${DESTDIRS[$template]}"
|
||||
[ -n "$destdir" ] || die "$template: la destination n'est pas configurée"
|
||||
mode="${MODES[$template]}"
|
||||
destname="${template#template-}"
|
||||
|
||||
tail -n+4 "$MYDIR/$template" >"$destdir/$destname"
|
||||
[ -n "$mode" ] && chmod "$mode" "$destdir/$destname"
|
||||
done
|
@ -1,12 +1,12 @@
|
||||
# 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
|
||||
# (dans le répertoire cli_config/ par défaut) et modifier les paramètres si nécessaire
|
||||
#-------------------------------------------------------------------------------
|
||||
<?php
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
require __DIR__.'/../vendor/autoload.php';
|
||||
# Lancer une application en ligne de commande
|
||||
|
||||
const NULIB_APP_app_params = [
|
||||
"projdir" => __DIR__ . '/..',
|
||||
"projdir" => __DIR__.'/..',
|
||||
"appcode" => \app\config\bootstrap::APPCODE,
|
||||
];
|
||||
require __DIR__.'/../vendor/nulib/base/php/src/app/cli/include-launcher.php';
|
@ -9,7 +9,7 @@ use nulib\app;
|
||||
use nulib\tools\BgLauncherApp;
|
||||
|
||||
# chemin vers le lanceur PHP
|
||||
const NULIB_APP_app_launcher = __DIR__.'/../_cli/.launcher.php';
|
||||
const NULIB_APP_app_launcher = __DIR__.'/../@@CLI@@/.launcher.php';
|
||||
|
||||
app::init([
|
||||
"projdir" => __DIR__.'/..',
|
@ -1,5 +1,5 @@
|
||||
# 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
|
||||
# (dans le répertoire cli_config/ 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
|
||||
@ -57,7 +57,7 @@ Vérification des liens..."
|
||||
for i in *.php*; do
|
||||
[ -f "$i" ] || continue
|
||||
name="bin/${i%.*}.php"
|
||||
dest="../_cli/_wrapper.sh"
|
||||
dest="../@@CLI@@/_wrapper.sh"
|
||||
link="../bin/${i%.*}.php"
|
||||
if [ -L "$link" ]; then
|
||||
echo "* $name OK"
|
@ -40,11 +40,31 @@ p == 1 {
|
||||
ac_clean "$conf0"
|
||||
}
|
||||
|
||||
declare -A PHPWRAPPER_DESTDIRS=(
|
||||
[_bg_launcher.php]=sbin
|
||||
[.launcher.php]=cli
|
||||
[_wrapper.sh]=cli
|
||||
)
|
||||
declare -A PHPWRAPPER_MODES=(
|
||||
[_bg_launcher.php]=+x
|
||||
[.launcher.php]=
|
||||
[_wrapper.sh]=+x
|
||||
)
|
||||
|
||||
projdir=
|
||||
install_phpwrappers=auto
|
||||
args=(
|
||||
"Mettre à jour le script runphp"
|
||||
"[path/to/runphp]"
|
||||
-d:,--projdir:PROJDIR . "Copier les fichiers pour un projet de l'université de la Réunion"
|
||||
-d:,--projdir:PROJDIR . "\
|
||||
Copier les fichiers pour un projet de l'université de la Réunion:
|
||||
- BUILDENV0 et BUILDENV sont fixés à ..env.dist et .env
|
||||
- les fichiers ..env.dist et .runphp.conf sont créés le cas échéant
|
||||
- le script build est mis à jour
|
||||
- les wrappers PHP pour la gestion des tâches de fond sont mis à jour le cas
|
||||
échéant"
|
||||
-p,--phpwrappers-install install_phpwrappers=1 "forcer l'installation des wrappers PHP"
|
||||
--np,--no-phpwrappers-install install_phpwrappers= "ne pas installer les wrappers PHP"
|
||||
)
|
||||
parse_args "$@"; set -- "${args[@]}"
|
||||
|
||||
@ -93,6 +113,7 @@ else
|
||||
fi
|
||||
|
||||
# (Re)construire le fichier destination
|
||||
estep "$(relpath "$runphp")"
|
||||
(
|
||||
cat "$preamble"
|
||||
echo
|
||||
@ -102,24 +123,79 @@ fi
|
||||
) >"$runphp"
|
||||
[ -x "$runphp" ] || chmod +x "$runphp"
|
||||
|
||||
eval "$(
|
||||
vars=(PROJDIR COMPOSERDIR COMPOSERPHAR VENDORDIR BUILDENV0 BUILDENV BUILD_FLAVOUR DIST IMAGENAME)
|
||||
arrays=(BUILD_IMAGES DISTFILES TEMPLATEFILES VARFILES)
|
||||
for var in "${vars[@]}"; do eval "$var="; done
|
||||
for array in "${arrays[@]}"; do eval "$array=()"; done
|
||||
source "$runphp"
|
||||
for var in "${vars[@]}"; do echo_setv2 "$var"; done
|
||||
for array in "${arrays[@]}"; do echo_seta2 "$array"; done
|
||||
)"
|
||||
|
||||
estep "$(relpath "$rundir/Dockerfile.runphp")"
|
||||
rsync -lpt "$MYDIR/Dockerfile.runphp" "$rundir/"
|
||||
|
||||
if [ -n "$projdir" ]; then
|
||||
if testdiff "$rundir/build" "$MYDIR/build"; then
|
||||
estep "$(relpath "$rundir/build")"
|
||||
cp "$MYDIR/build" "$rundir/build"
|
||||
chmod +x "$rundir/build"
|
||||
fi
|
||||
if [ ! -f "$projdir/..env.dist" ]; then
|
||||
estep "$(relpath "$projdir/..env.dist")"
|
||||
sed <"$MYDIR/dot-build.env.dist" >"$projdir/..env.dist" '
|
||||
/^IMAGENAME=/s/=.*\//='"$(basename -- "$projdir")"'\//
|
||||
'
|
||||
initial_config=1
|
||||
fi
|
||||
if [ ! -f "$projdir/.runphp.conf" ]; then
|
||||
estep "$(relpath "$projdir/.runphp.conf")"
|
||||
sed <"$MYDIR/dot-runphp.conf" >"$projdir/.runphp.conf" '
|
||||
/^RUNPHP=/s/=.*/=sbin\/runphp/
|
||||
'
|
||||
fi
|
||||
|
||||
sbin_dest=sbin
|
||||
cli_dest=cli_config
|
||||
if [ "$install_phpwrappers" == auto ]; then
|
||||
if [ ! -f "$PROJDIR/$COMPOSERDIR/composer.json" ]; then
|
||||
# ce doit être un projet PHP
|
||||
install_phpwrappers=
|
||||
elif [ -d "$projdir/cli_config" ]; then
|
||||
install_phpwrappers=1
|
||||
sbin_dest=sbin
|
||||
cli_dest=cli_config
|
||||
elif [ -d "$projdir/_cli" ]; then
|
||||
install_phpwrappers=1
|
||||
sbin_dest=sbin
|
||||
cli_dest=_cli
|
||||
else
|
||||
install_phpwrappers=
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$install_phpwrappers" ]; then
|
||||
setx -a phpwrappers=ls_files "$MYDIR" "phpwrapper-*"
|
||||
for phpwrapper in "${phpwrappers[@]}"; do
|
||||
destname="${phpwrapper#phpwrapper-}"
|
||||
destdir="${PHPWRAPPER_DESTDIRS[$destname]}"
|
||||
[ -n "$destdir" ] || die "$phpwrapper: la destination n'est pas configurée"
|
||||
mode="${PHPWRAPPER_MODES[$destname]}"
|
||||
|
||||
case "$destdir" in
|
||||
sbin) destdir="$PROJDIR/$sbin_dest";;
|
||||
cli) destdir="$PROJDIR/$cli_dest";;
|
||||
*) destdir="$PROJDIR/$destdir";;
|
||||
esac
|
||||
|
||||
estep "$(relpath "$destdir/$destname")"
|
||||
mkdir -p "$destdir"
|
||||
tail -n+4 "$MYDIR/$phpwrapper" |
|
||||
sed "s|/@@CLI@@/|/$cli_dest/|" >"$destdir/$destname"
|
||||
[ -n "$mode" ] && chmod "$mode" "$destdir/$destname"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
[ -n "$initial_config" ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user