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,5 +1,5 @@
|
|||||||
# TODO Faire une copie de ce script dans un répertoire de l'application web
|
# 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
|
<?php
|
||||||
require __DIR__.'/../vendor/autoload.php';
|
require __DIR__.'/../vendor/autoload.php';
|
@ -9,7 +9,7 @@ use nulib\app;
|
|||||||
use nulib\tools\BgLauncherApp;
|
use nulib\tools\BgLauncherApp;
|
||||||
|
|
||||||
# chemin vers le lanceur PHP
|
# 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([
|
app::init([
|
||||||
"projdir" => __DIR__.'/..',
|
"projdir" => __DIR__.'/..',
|
@ -1,5 +1,5 @@
|
|||||||
# TODO Faire une copie de ce script dans un répertoire de l'application web
|
# 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
|
#!/bin/bash
|
||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- 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
|
for i in *.php*; do
|
||||||
[ -f "$i" ] || continue
|
[ -f "$i" ] || continue
|
||||||
name="bin/${i%.*}.php"
|
name="bin/${i%.*}.php"
|
||||||
dest="../_cli/_wrapper.sh"
|
dest="../@@CLI@@/_wrapper.sh"
|
||||||
link="../bin/${i%.*}.php"
|
link="../bin/${i%.*}.php"
|
||||||
if [ -L "$link" ]; then
|
if [ -L "$link" ]; then
|
||||||
echo "* $name OK"
|
echo "* $name OK"
|
@ -40,11 +40,31 @@ p == 1 {
|
|||||||
ac_clean "$conf0"
|
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=
|
projdir=
|
||||||
|
install_phpwrappers=auto
|
||||||
args=(
|
args=(
|
||||||
"Mettre à jour le script runphp"
|
"Mettre à jour le script runphp"
|
||||||
"[path/to/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[@]}"
|
parse_args "$@"; set -- "${args[@]}"
|
||||||
|
|
||||||
@ -93,6 +113,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# (Re)construire le fichier destination
|
# (Re)construire le fichier destination
|
||||||
|
estep "$(relpath "$runphp")"
|
||||||
(
|
(
|
||||||
cat "$preamble"
|
cat "$preamble"
|
||||||
echo
|
echo
|
||||||
@ -102,24 +123,79 @@ fi
|
|||||||
) >"$runphp"
|
) >"$runphp"
|
||||||
[ -x "$runphp" ] || chmod +x "$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/"
|
rsync -lpt "$MYDIR/Dockerfile.runphp" "$rundir/"
|
||||||
|
|
||||||
if [ -n "$projdir" ]; then
|
if [ -n "$projdir" ]; then
|
||||||
if testdiff "$rundir/build" "$MYDIR/build"; then
|
if testdiff "$rundir/build" "$MYDIR/build"; then
|
||||||
|
estep "$(relpath "$rundir/build")"
|
||||||
cp "$MYDIR/build" "$rundir/build"
|
cp "$MYDIR/build" "$rundir/build"
|
||||||
chmod +x "$rundir/build"
|
chmod +x "$rundir/build"
|
||||||
fi
|
fi
|
||||||
if [ ! -f "$projdir/..env.dist" ]; then
|
if [ ! -f "$projdir/..env.dist" ]; then
|
||||||
|
estep "$(relpath "$projdir/..env.dist")"
|
||||||
sed <"$MYDIR/dot-build.env.dist" >"$projdir/..env.dist" '
|
sed <"$MYDIR/dot-build.env.dist" >"$projdir/..env.dist" '
|
||||||
/^IMAGENAME=/s/=.*\//='"$(basename -- "$projdir")"'\//
|
/^IMAGENAME=/s/=.*\//='"$(basename -- "$projdir")"'\//
|
||||||
'
|
'
|
||||||
initial_config=1
|
initial_config=1
|
||||||
fi
|
fi
|
||||||
if [ ! -f "$projdir/.runphp.conf" ]; then
|
if [ ! -f "$projdir/.runphp.conf" ]; then
|
||||||
|
estep "$(relpath "$projdir/.runphp.conf")"
|
||||||
sed <"$MYDIR/dot-runphp.conf" >"$projdir/.runphp.conf" '
|
sed <"$MYDIR/dot-runphp.conf" >"$projdir/.runphp.conf" '
|
||||||
/^RUNPHP=/s/=.*/=sbin\/runphp/
|
/^RUNPHP=/s/=.*/=sbin\/runphp/
|
||||||
'
|
'
|
||||||
fi
|
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
|
fi
|
||||||
|
|
||||||
[ -n "$initial_config" ]
|
[ -n "$initial_config" ]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user