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