559 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			559 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| ##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | |
| ## Déploiement de bundle WebObjects
 | |
| ##@cooked nocomments
 | |
| ##@require ulib
 | |
| ##@require base
 | |
| ##@require prefixes
 | |
| ##@require apache
 | |
| ##@require webobjects
 | |
| uprovide woinst
 | |
| urequire ulib base prefixes apache webobjects
 | |
| 
 | |
| function date2version() {
 | |
|     local date="$1"
 | |
|     dd="$(expr "$date" : "\(..\)")"; [ -z "$dd" ] && dd="$(date +%d)"
 | |
|     mm="$(expr "$date" : "../\(..\)")"; [ -z "$mm" ] && mm="$(date +%m)"
 | |
|     yyyy="$(expr "$date" : "../../\(....\)")"; [ -z "$yyyy" ] && yyyy="$(date +%Y)"
 | |
|     yy="$(expr "$yyyy" : "..\(..\)")"
 | |
|     echo "$yyyy$mm$dd"
 | |
| }
 | |
| 
 | |
| function woconf() {
 | |
|     function __woconf_display_help() {
 | |
|         uecho "woctl configure: configurer une application ou un framework
 | |
| 
 | |
| USAGE
 | |
|     configure <app.woa|fwk.framework> [cmds...]
 | |
| 
 | |
| cmds est soit un unique argument avec une commande par ligne, soit une suite de commandes séparées par //
 | |
| 
 | |
| COMMANDES
 | |
|     # comment
 | |
|         Les commentaires sont ignorés
 | |
|     v[erify]
 | |
|         Vérifier le corriger la consistance du bundle.
 | |
|         Cette action est effectuée automatiquement sauf si l'option --no-verify
 | |
|         est spécifiée.
 | |
|     set_config configfile
 | |
|     c>configfile
 | |
|         Changer le fichier de configuration par défaut
 | |
|     set_config configfile srcfile
 | |
|     c>configfile:srcfile
 | |
|         Créer le fichier configfile en le copiant depuis srcfile, et en faire le
 | |
|         nouveau fichier de configuration par défaut
 | |
|     set_property prop value [configfile]
 | |
|     c[configfile/]prop=value
 | |
|         Modifier une propriété dans le fichier de configuration spécifié.
 | |
|         Utiliser le fichier de configuration par défaut si configfile n'est pas
 | |
|         spécifié.
 | |
|     set_eomodel eomodel
 | |
|     e>eomodel
 | |
|         Changer l'eomodel par défaut
 | |
|     set_dbconfig dbConfig [eomodel]
 | |
|     e[eomodel/]dbConfig
 | |
|         Activer la configuration dbConfig dans l'eomodel spécifié. Utiliser
 | |
|         l'eomodel par défaut si eomodel n'est pas spécifié.
 | |
|     add Fwk.framework
 | |
|     aFwk.framework
 | |
|         Ajouter un framework au classpath de l'application
 | |
|     remove Fwk.framework
 | |
|     rFwk.framework
 | |
|         Enlever un framework du classpath de l'application
 | |
|     replace before after
 | |
|     sbefore:after
 | |
|         Faire un recherche/remplace dans les fichiers de classpath de
 | |
|         l'application.
 | |
|     f[ix_case]
 | |
|         Corriger la casse dans les fichiers de classpath de l'application, selon
 | |
|         les frameworks effectivement installés. En effet, un déploiement qui
 | |
|         peut fonctionner sur MacOSX, dont le système de fichier n'est pas
 | |
|         sensible à la casse, peut cesser de fonctionner sur Linux, parce que le
 | |
|         nom du jar ne correspond pas."
 | |
|     }
 | |
| 
 | |
|     local noverify bundle cmds cmd
 | |
|     noverify=
 | |
|     parse_opts "${PRETTYOPTS[@]}" \
 | |
|         --help '$exit_with __woconf_display_help' \
 | |
|         --noverify,--no-verify noverify=1 \
 | |
|         @ args -- "$@" && set -- "${args[@]}" || die "$args"
 | |
| 
 | |
|     bundle="$1"; shift
 | |
|     [ -n "$bundle" ] || {
 | |
|         eerror "Il faut spécifier le bundle à configurer"
 | |
|         return 1
 | |
|     }
 | |
|     if is_wobundle "$bundle" && is_woappdir "$bundle"; then
 | |
|         :
 | |
|     elif is_wobundle "$bundle" && is_wofwkdir "$bundle"; then
 | |
|         :
 | |
|     else
 | |
|         eerror "N'est pas un bundle valide: $bundle"
 | |
|         return 1
 | |
|     fi
 | |
|     bundle="$(abspath "$bundle")"
 | |
|     [ -w "$bundle" ] || die "Bundle non accessible en écriture"
 | |
| 
 | |
|     if [ $# -le 1 ]; then
 | |
|         array_from_lines cmds "$(filter_comment <<<"$1")"
 | |
|     else
 | |
|         cmds=()
 | |
|         cmd=()
 | |
|         while [ -n "$1" ]; do
 | |
|             if [ "$1" == // ]; then
 | |
|                 if [ -n "${cmd[*]}" ]; then
 | |
|                     cmds=("${cmds[@]}" "$(quoted_args "${cmd[@]}")")
 | |
|                 fi
 | |
|                 cmd=()
 | |
|             else
 | |
|                 cmd=("${cmd[@]}" "$1")
 | |
|             fi
 | |
|             shift
 | |
|         done
 | |
|         if [ -n "${cmd[*]}" ]; then
 | |
|             cmds=("${cmds[@]}" "$(quoted_args "${cmd[@]}")")
 | |
|         fi
 | |
|     fi
 | |
| 
 | |
|     etitle "Configuration de $(ppath "$bundle")"
 | |
|     local verify_done first=1
 | |
|     [ -z "$noverify" ] && {
 | |
|         estep verify
 | |
|         verifix_bundle "$bundle"
 | |
|         verify_done=1
 | |
|     }
 | |
|     for cmd in "${cmds[@]}"; do
 | |
|         eval "set -- $cmd"
 | |
|         if [ $# -eq 1 ]; then
 | |
|             # commandes abrégées sur une lettre
 | |
|             case "$1" in
 | |
|             v|verify|verifix)
 | |
|                 # si v est en premier, et que la vérification a déjà été faite,
 | |
|                 # alors on peut l'ignorer
 | |
|                 if [ -z "$first" -o -z "$verify_done" ]; then
 | |
|                     estep "verify"
 | |
|                     verifix_bundle "$bundle"
 | |
|                 fi
 | |
|                 ;;
 | |
|             f|fix_case|fix-case)
 | |
|                 estep "fix-case"
 | |
|                 fix_jars_case "$bundle"
 | |
|                 ;;
 | |
|             c*)
 | |
|                 eerror "set_config / set_property ne sont pas implémentés"
 | |
|                 ;;
 | |
|             e*)
 | |
|                 eerror "set_eomodel / set_dbconfig ne sont pas implémentés"
 | |
|                 ;;
 | |
|             a*)
 | |
|                 local framework="${1#a}"
 | |
|                 estep "add $framework"
 | |
|                 add_framework "$bundle" "$framework"
 | |
|                 ;;
 | |
|             r*)
 | |
|                 local framework="${1#r}"
 | |
|                 estep "remove $framework"
 | |
|                 remove_framework "$bundle" "$framework"
 | |
|                 ;;
 | |
|             s*)
 | |
|                 local search replace
 | |
|                 replace="${1#s}"
 | |
|                 search="${replace%%:*}"
 | |
|                 replace="${replace#*:}"
 | |
|                 if [ -n "$replace" ]; then
 | |
|                     estep "Replace in classpath $search --> $replace"
 | |
|                 else
 | |
|                     estep "Delete in classpath $search"
 | |
|                 fi
 | |
|                 searchreplace_classpath "$bundle" "$search" "$replace"
 | |
|                 ;;
 | |
|             *) eerror "Commande invalide: $1";;
 | |
|             esac
 | |
|         else
 | |
|             # commandes "user-friendly"
 | |
|             case "$1" in
 | |
|             conf|config|set_conf|set_config)
 | |
|                 eerror "set_config n'est pas implémenté"
 | |
|                 ;;
 | |
|             prop|property|set_prop|set_property)
 | |
|                 eerror "set_property n'est pas implémenté"
 | |
|                 ;;
 | |
|             eomodel|set_eomodel)
 | |
|                 eerror "set_eomodel n'est pas implémenté"
 | |
|                 ;;
 | |
|             dbconf|dbconfig|set_dbconf|set_dbconfig)
 | |
|                 eerror "set_dbconfig n'est pas implémenté"
 | |
|                 ;;
 | |
|             add|add_fwk|add_framework)
 | |
|                 estep "add $2"
 | |
|                 add_framework "$bundle" "$2"
 | |
|                 ;;
 | |
|             remove|remove_fwk|remove_framework)
 | |
|                 estep "remove $2"
 | |
|                 remove_framework "$bundle" "$2"
 | |
|                 ;;
 | |
|             repl|replace)
 | |
|                 if [ -n "$3" ]; then
 | |
|                     estep "Replace in classpath $2 --> $3"
 | |
|                 else
 | |
|                     estep "Delete in classpath $2"
 | |
|                 fi
 | |
|                 searchreplace_classpath "$bundle" "$2" "$3"
 | |
|                 ;;
 | |
|             *) eerror "Commande invalide: $*";;
 | |
|             esac
 | |
|         fi
 | |
|         first=
 | |
|     done
 | |
|     eend
 | |
| }
 | |
| 
 | |
| function wotag() {
 | |
|     function __wotag_display_help() {
 | |
|         uecho "woctl tag: attacher une information de version à un bundle
 | |
| 
 | |
| USAGE
 | |
|     tag [options] <bundle>
 | |
| 
 | |
| OPTIONS
 | |
|     -c  Vérifier si des informations de versions existent dans le bundle
 | |
|         spécifié.
 | |
|     -s  Afficher les informations de versions attachées
 | |
|     -v VERSION
 | |
|         Spécifier la version, ou '-' s'il n'y a pas de version
 | |
|     -d DATE
 | |
|         Spécifier la date de release
 | |
|     -m DESC
 | |
|         Spécifier une description du bundle
 | |
| 
 | |
| Si aucune des options -v, -d, -m n'est spécifiée, alors tenter de prendre les
 | |
| informations de version et la date de release depuis le fichier VERSION.txt
 | |
| situé dans le répertoire de resources.
 | |
| Sinon, il faut saisir manuellement les informations."
 | |
|     }
 | |
| 
 | |
|     local action newversion newdate newdesc
 | |
|     local version date desc release
 | |
|     local bundlename bundle found
 | |
|     action=tag
 | |
|     newversion=
 | |
|     newdate=
 | |
|     newdesc=
 | |
|     bundlename=
 | |
|     parse_opts "${PRETTYOPTS[@]}" \
 | |
|         --help '$exit_with __wotag_display_help' \
 | |
|         -c action=check \
 | |
|         -s action=show \
 | |
|         -v:,--version: newversion= \
 | |
|         -d:,--date: newdate= \
 | |
|         -m:,--desc: newdesc= \
 | |
|         --message: bundlename= \
 | |
|         @ args -- "$@" &&
 | |
|     set -- "${args[@]}" || {
 | |
|         eerror "$args"
 | |
|         return 1
 | |
|     }
 | |
| 
 | |
|     bundle="$1"
 | |
|     [ -n "$bundle" ] || {
 | |
|         eerror "Il faut spécifier le bundle à tagger"
 | |
|         return 1
 | |
|     }
 | |
|     if [ ! -d "$bundle" ]; then
 | |
|         if [ "$action" == "check" ]; then
 | |
|             return 1
 | |
|         elif [ "$action" == "show" ]; then
 | |
|             [ -z "$bundlename" ] && bundlename="$(basename "$bundle")"
 | |
|             eecho "$bundlename: not found"
 | |
|             return 0
 | |
|         else
 | |
|             eerror "Bundle non trouvé: $bundle"
 | |
|             return 1
 | |
|         fi
 | |
|     elif is_wobundle "$bundle" && is_woappdir "$bundle"; then
 | |
|         :
 | |
|     elif is_wobundle "$bundle" && is_wofwkdir "$bundle"; then
 | |
|         :
 | |
|     else
 | |
|         eerror "N'est pas un bundle valide: $bundle"
 | |
|         return 1
 | |
|     fi
 | |
|     bundle="$(abspath "$bundle")"
 | |
|     [ -z "$bundlename" ] && bundlename="$(basename "$bundle")"
 | |
| 
 | |
|     local infofile="$(get_infofile "$bundle")"
 | |
|     local jawotoolsfile="$(get_jawotoolsfile "$bundle")"
 | |
|     local jawotoolsfile2="$bundle/jawotools.properties"
 | |
|     local versionfile="$(get_versionfile "$bundle")"
 | |
| 
 | |
|     if [ "$action" == "check" ]; then
 | |
|         [ -f "$jawotoolsfile" ] || return 1
 | |
|         read_jawotoolsfile "$jawotoolsfile" version date
 | |
|         [ -n "$version" -o -n "$date" ] && return 0
 | |
|         return 1
 | |
| 
 | |
|     elif [ "$action" == "show" ]; then
 | |
|         found=
 | |
|         if [ -f "$jawotoolsfile" ]; then
 | |
|             read_jawotoolsfile "$jawotoolsfile" version date desc
 | |
|             if [ -n "$version" -o -n "$date" ]; then
 | |
|                 eecho "$bundlename: Version${version:+ "$version"}${date:+ du "$date"}${desc:+
 | |
| ("$desc")}"
 | |
|                 found=1
 | |
|             fi
 | |
|         elif [ -f "$infofile" ]; then
 | |
|             read_infofile "$infofile" version release
 | |
|             if [ -n "$version" ]; then
 | |
|                 eecho "$bundlename: Version $version${release:+ ("$release")}"
 | |
|                 found=1
 | |
|             elif [ -n "$release" ]; then
 | |
|                 eecho "$bundlename: Release $release"
 | |
|                 found=1
 | |
|             fi
 | |
|         fi
 | |
|         [ -n "$found" ] || eecho "$bundlename: no version found"
 | |
| 
 | |
|     elif [ "$action" == "tag" ]; then
 | |
|         # lire les valeurs actuelles
 | |
|         if [ -f "$jawotoolsfile" ]; then
 | |
|             read_jawotoolsfile "$jawotoolsfile" version date desc
 | |
|         fi
 | |
| 
 | |
|         # si le fichier de version existe, lire la version et la date de release
 | |
|         if [ -z "$newversion" -a -z "$newdate" -a -f "$versionfile" ]; then
 | |
|             newversion="$(awk <"$versionfile" '{
 | |
|               gsub("-r../../....$", "")
 | |
|               print
 | |
|               exit
 | |
|             }')"
 | |
|             newdate="$(awk <"$versionfile" '{
 | |
|               if ($0 ~ /.*-r..\/..\/....$/) {
 | |
|                 gsub(".*-r", "")
 | |
|                 print
 | |
|               }
 | |
|               exit
 | |
|             }')"
 | |
|         fi
 | |
|         # si le fichier Info.plist existe, y lire les informations de version
 | |
|         if [ -z "$newversion" -a -z "$newdate" -a -f "$infofile" ]; then
 | |
|             read_infofile "$infofile" newversion release
 | |
|             [ -n "$newversion" ] || newversion="$release"
 | |
|         fi
 | |
| 
 | |
|         # nous n'avons pas trouvé de version, il faut saisir les valeurs à la main
 | |
|         if [ -z "$newversion" -o -z "$newdate" ]; then
 | |
|             [ "$newversion" == "-" ] && newversion=
 | |
|             [ "$newdate" == "-" ] && newdate=
 | |
| 
 | |
|             defversion="${newversion:-$version}"
 | |
|             read_value "Entrez la version (vide s'il n'y a que la date de release)" newversion "$defversion" N
 | |
|             defdate="${newdate:-${date:-$(date +"%d/%m/%Y")}}"
 | |
|             read_value "Entrez la date de release" newdate "$defdate"
 | |
|             defdesc="${newdesc:-$desc}"
 | |
|             read_value -i "Entrez une description du bundle" newdesc "$defdesc" N
 | |
|         fi
 | |
|         [ "$newversion" == "-" ] && newversion=
 | |
|         [ "$newdate" == "-" ] && newdate=
 | |
| 
 | |
|         [ -n "$newversion" -o -n "$newdate" ] || {
 | |
|             eerror "Il faut spécifier le numéro de version et/ou la date de release"
 | |
|             return 1
 | |
|         }
 | |
| 
 | |
|         eecho "$bundlename: Version${newversion:+ "$newversion"}${newdate:+ du "$newdate"}${newdesc:+
 | |
| ("$newdesc")}"
 | |
|         if [ "$newversion" != "$version" -o "$newdate" != "$date" -o "$newdesc" != "$desc" ]; then
 | |
|             [ "$jawotoolsfile" == "$jawotoolsfile2" ] || rm -f "$jawotoolsfile"
 | |
|             save_jawotoolsfile "$jawotoolsfile2" "$newversion" "$newdate" "$newdesc"
 | |
|             write_infofile "$infofile" "$newversion" "$(date2version "$newdate")"
 | |
|         else
 | |
|             einfo "Aucune modification effectuée"
 | |
|         fi
 | |
|     fi
 | |
| }
 | |
| 
 | |
| WOINST_TMPDIR_SET=
 | |
| function __woinst_set_tmpdir_maybe() {
 | |
|     if [ -z "$WOINST_TMPDIR_SET" ]; then
 | |
|         ac_set_tmpdir tmpdir
 | |
|         WOINST_TMPDIR_SET=1
 | |
|     fi
 | |
| }
 | |
| 
 | |
| function __woinst_expand_archive() {
 | |
|     local archdir contents
 | |
|     __woinst_set_tmpdir_maybe
 | |
| 
 | |
|     estep "Décompactage de $(ppath "$src") dans $tmpdir..."
 | |
|     archdir="$tmpdir/$(get_archive_appname "$src")"
 | |
|     mkdir -p "$archdir"
 | |
|     extract_archive "$src" "$archdir" || return 1
 | |
| 
 | |
|     # s'il n'y a qu'un répertoire dans l'archive, le considérer comme le
 | |
|     # répertoire à déployer.
 | |
|     array_from_lines contents "$(list_all "$archdir")"
 | |
|     if [ "${#contents[*]}" -eq 1 -a -d "$archdir/$contents" ]; then
 | |
|         archdir="$archdir/$contents"
 | |
|     fi
 | |
|     
 | |
|     src="$archdir"
 | |
| }
 | |
| 
 | |
| function woinst() {
 | |
|     function __woinst_display_help() {
 | |
|         uecho "$scriptname: Déployer un bundle (application ou framework) de WebObjects
 | |
| 
 | |
| USAGE
 | |
|     $scriptname [options] <file|archive|dir>...
 | |
| 
 | |
| OPTIONS
 | |
|     PREFIX=value
 | |
|         Spécifier une valeur pour un préfixe, plutôt que de laisser uprefix
 | |
|         l'autodétecter. Utiliser uprefix -l pour une liste de préfixes valides.
 | |
|     -b  Redémarrer les instances en mode bounce.
 | |
|         Par défaut, les instances sont arrêtées avant le déploiement, et
 | |
|         redémarrées après
 | |
|     -W  Ne déployer que les resources web. Implique -n
 | |
|     -n  Ne pas tagger les bundles déployés avec un numéro de version. Par
 | |
|         défaut, l'utilisateur est invité à compléter des informations telles
 | |
|         que n° de version et date de release si ces informations ne sont pas
 | |
|         disponible.
 | |
|     -x CMD
 | |
|         Exécuter la commande CMD après avoir effectué le déploiement"
 | |
|     }
 | |
| 
 | |
|     local bounce webinst notag scripts istmpdir tmpdir
 | |
|     scripts=()
 | |
|     parse_opts "${PRETTYOPTS[@]}" \
 | |
|         --help '$exit_with __woinst_display_help' \
 | |
|         -b,--bounce bounce=1 \
 | |
|         -W,--webres webinst=1 \
 | |
|         -n,--notag notag=1 \
 | |
|         -x:,--exec: scripts \
 | |
|         --is-tmpdir '$istmpdir=1; tmpdir=.' \
 | |
|         @ args -- "$@" &&
 | |
|     set -- "${args[@]}" || {
 | |
|         eerror "$args"
 | |
|         return 1
 | |
|     }
 | |
| 
 | |
|     # Tout d'abord énumérer les frameworks et applications à installer
 | |
|     # Lire aussi les définitions de variables
 | |
|     compute_apache_prefixes
 | |
|     compute_webobjects_prefixes
 | |
|     
 | |
|     etitle "Calcul de la liste des bundles à déployer"
 | |
| 
 | |
|     if [ -z "$istmpdir" ]; then
 | |
|         __woinst_set_tmpdir_maybe
 | |
|         estep "La copie de travail sera faite dans $(ppath "$tmpdir")..."
 | |
|     fi
 | |
| 
 | |
|     local -a variables frameworks applications
 | |
|     local src name value valid copied
 | |
|     variables=()
 | |
|     frameworks=()
 | |
|     applications=()
 | |
|     for src in "${@:-.}"; do
 | |
|         if [[ "$src" == *=* ]]; then
 | |
|             splitvar "$src" name value
 | |
|             array_add variables "$name"
 | |
|             set_var "$name" "$value"
 | |
|         else
 | |
|             src="$(abspath "$src")"
 | |
|             valid=
 | |
|             copied=
 | |
|     
 | |
|             if [ -f "$src" ] && is_archive "$src"; then
 | |
|                 __woinst_expand_archive || return 1
 | |
|                 copied=1
 | |
|             fi
 | |
|             if [ -d "$src" ]; then
 | |
|                 if endswith "$src" .framework; then
 | |
|                     is_wofwkdir "$src" || {
 | |
|                         eerror "Framework invalide: $(ppath "$src")"
 | |
|                         return 1
 | |
|                     }
 | |
|                     valid=1
 | |
|                 elif endswith "$src" .woa; then
 | |
|                     is_woappdir "$src" || {
 | |
|                         eerror "Application invalide: $(ppath "$src")"
 | |
|                         return 1
 | |
|                     }
 | |
|                     valid=1
 | |
|                 fi
 | |
|             fi
 | |
|             [ -n "$valid" ] || {
 | |
|                 eerror "N'est pas un bundle valide: $(ppath "$src")"
 | |
|                 return 1
 | |
|             }
 | |
|             srcname="$(basename "$src")"
 | |
|     
 | |
|             if [ -z "$copied" -a -z "$istmpdir" ]; then
 | |
|                 estep "$(ppath "$src")"
 | |
|                 cpnovcs "$src" "$tmpdir"
 | |
|                 src="$tmpdir/$srcname"
 | |
|             fi
 | |
|     
 | |
|             if endswith "$src" .framework; then
 | |
|                 array_add frameworks "$src"
 | |
|             elif endswith "$src" .woa; then
 | |
|                 array_add applications "$src"
 | |
|             fi
 | |
|         fi
 | |
|     done
 | |
|     eend
 | |
|     
 | |
|     # Tagger les bundles
 | |
|     if [ -z "$webinst" -a -z "$notag" ]; then
 | |
|         etitle "Tagger les bundles"
 | |
|         for src in "${frameworks[@]}"; do
 | |
|             srcname="$(basename "$src")"
 | |
|             etitle "$srcname"
 | |
|             wotag --message "Version installée" -s "$WOFRAMEWORKS/$srcname"
 | |
|             wotag --message "Version à installer" "$src"
 | |
|             eend
 | |
|         done
 | |
|         for src in "${applications[@]}"; do
 | |
|             srcname="$(basename "$src")"
 | |
|             etitle "$srcname"
 | |
|             wotag --message "Version installée" -s "$WOAPPLICATIONS/$srcname"
 | |
|             wotag --message "Version à installer" "$src"
 | |
|             eend
 | |
|         done
 | |
|         eend
 | |
|     fi
 | |
| 
 | |
|     # Confirmer le déploiement
 | |
|     etitle "Résumé"
 | |
|     function __woinst_strip_woa() { basename "$1" .woa; }
 | |
|     function __woinst_strip_fwk() { basename "$1" .framework; }
 | |
|     estepn "Déploiement ${applications:+des applications: $(array_mapjoin applications __woinst_strip_woa " ")${frameworks:+
 | |
| et }}${frameworks:+des frameworks: $(array_mapjoin frameworks __woinst_strip_fwk " ")}
 | |
| dans NEXT_ROOT  = ${NEXT_ROOT:-/}
 | |
|      HTDOCS_DIR = ${HTDOCSDIR}"
 | |
| 
 | |
|     if ! ask_yesno -c "Voulez-vous lancer le déploiement?" O; then
 | |
|         eend
 | |
|         return 1
 | |
|     fi
 | |
|     eend
 | |
|     
 | |
|     # Faire le déploiement
 | |
|     local configfile variable
 | |
|     ac_set_tmpfile configfile
 | |
|     for variable in "${variables[@]}" bounce webinst ULIBDIR __estack __tlevel; do
 | |
|         set_var_cmd "$variable" "${!variable}" >>"$configfile"
 | |
|     done
 | |
|     for array in variables scripts applications frameworks; do
 | |
|         set_array_cmd "$array" >>"$configfile"
 | |
|     done
 | |
|     # pour les serveurs qui ont une vieille version de bash, forcer la valeur de
 | |
|     # ULIBDIR
 | |
|     set_var_cmd "FORCED_ULIBDIR" "$ULIBDIR" >>"$configfile"
 | |
| 
 | |
|     runscript_as_root "$ULIBDIR/support/woinst2s" "$configfile"
 | |
| 
 | |
|     ac_clean "$tmpdir" "$configfile"
 | |
| }
 | 
