afficher un menu si plusieurs répertoires de templates sont disponibles

This commit is contained in:
Jephté Clain 2017-02-21 19:19:07 +04:00
parent 6192c0ab25
commit 02f52af289
1 changed files with 17 additions and 9 deletions

View File

@ -221,17 +221,25 @@ elif [ "$action" == new-site ]; then
host="$site_host"
templdir="$site_templdir"
if [ -z "$templdir" ]; then
if [ -z "$templdir" -a -d "$destdir/templates" ]; then
# si on ne précise pas le template à utiliser, alors afficher
# éventuellement un menu si plusieurs templates sont disponibles
:
# algo: on liste les *fichiers* de $destdir/templates: s'il y en a,
# alors ajouter ce répertoire à la liste des répertoires de template
# puis lister les répertoires de $destdir/templates. pour chacun de ces
# répertoires, s'ils sont non vides, les rajouter à la liste des
# répertoires de template. Ensuite, si la liste des répertoires de
# template contient plus d'un élément, afficher un menu pour choisir le
# template.
templdirs=()
if [ -n "$(list_all "$destdir/templates" "*SITE*")" ]; then
array_add templdirs templates
templdir=templates
fi
array_from_lines stempldirs "$(list_dirs "$destdir/templates" | grep -v SITE)"
for stempldir in "${stempldirs[@]}"; do
if [ -n "$(list_all "$destdir/templates/$stempldir" "*SITE*")" ]; then
array_add templdirs "templates/$stempldir"
[ -n "$templdir" ] || templdir="templates/$stempldir"
fi
done
if [ ${#templdirs[*]} -gt 1 ]; then
simple_menu templdir templdirs -t "Choix du répertoire des modèles" -m "Veuillez choisir le modèle à utiliser"
fi
templdir="$destdir/$templdir"
fi
if [[ "$templdir" != */* ]] && [ -d "$destdir/templates/$templdir" ]; then