From b288cf2d8818d4b1e7b36c6c0772efea57892a2b Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Thu, 24 Dec 2015 09:58:09 +0400 Subject: [PATCH] apacheconfig: support des fichiers de confs --> /etc/apache2/cond.d sur debian wheezy- --- apacheconfig | 8 +++++++- lib/ulib/apache.tools | 35 +++++++++++++++++++++++++++++------ lib/ulib/sysinfos | 6 ++++++ 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/apacheconfig b/apacheconfig index 2284e32..204518c 100755 --- a/apacheconfig +++ b/apacheconfig @@ -154,6 +154,7 @@ destdir= nohideconfig= templateopt= aac_certsdir= +bits= oneconf= onemodule= onesite= @@ -176,6 +177,7 @@ args=( -6,--squeeze '$array_add TEMPLATECTL_VARS sysver=squeeze' -7,--wheezy '$array_add TEMPLATECTL_VARS sysver=wheezy' -8,--jessie '$array_add TEMPLATECTL_VARS sysver=jessie' + --bits: bits= -u,--update,--deploy action=deploy -r:,--certsdir: aac_certsdir= --localhosts action=localhosts @@ -192,15 +194,17 @@ templatectl_loadvars "$config" && modified=1 if [ -n "$sysname" -o -n "$sysdist" -o -n "$sysver" ]; then ensure_sysinfos sysname sysdist sysver + custom_sysinfos=1 else sysname="$MYSYSNAME" sysdist="$MYSYSDIST" sysver="$MYSYSVER" + bits="$MYBITS" + custom_sysinfos= fi __template_set_var sysname "$sysname" __template_set_var sysdist "$sysdist" __template_set_var sysver "$sysver" -bits= if check_sysinfos --vars sysname sysdist sysver bits -d debian -v jessie+; then array_add TEMPLATECTL_SRCDIRS apacheconfig8 elif check_sysinfos --vars sysname sysdist sysver bits -d debian; then @@ -248,6 +252,7 @@ elif [ "$action" == deploy -o "$action" == localhosts ]; then ${oneconf:+--one-conf "$oneconf"} ${onemodule:+--one-module "$onemodule"} ${onesite:+--one-site "$onesite"} + ${custom_sysinfos:+--sysname "$sysname" --sysdist "$sysdist" --sysver "$sysver" --bits "$bits"} ) for __name in "${TEMPLATE_DYNAMIC_VARS[@]}"; do array_add args -v "$__name=${!__name}" @@ -261,6 +266,7 @@ elif [ "$action" == deploy -o "$action" == localhosts ]; then --ignore "$(basename -- "$config")" ${oneconf:+--one-conf "$(basename -- "$oneconf")"} ${onemodule:+--one-module "$(basename -- "$onemodule")"} + ${custom_sysinfos:+--sysname "$sysname" --sysdist "$sysdist" --sysver "$sysver" --bits "$bits"} ) elif [ "$action" == localhosts ]; then etitle "Mise à jour de /etc/hosts" diff --git a/lib/ulib/apache.tools b/lib/ulib/apache.tools index e2f2dfa..4934fb6 100644 --- a/lib/ulib/apache.tools +++ b/lib/ulib/apache.tools @@ -156,7 +156,7 @@ OPTIONS } function __apache_autoconf_setup() { - if ! check_sysinfos -s linux -d debian; then + if ! check_sysinfos --vars sysname sysdist sysver bits -s linux64 linux32 linux -d debian; then eerror "apache_autoconf n'est supporté que sur Debian linux" return 1 fi @@ -236,6 +236,8 @@ function apache_autoconf() { local -a ignores local autoconfdir certsdir confdir confsdir oneconf modulesdir onemodule local sitesdir onesite cgibindir wwwdir certsconfdir rrdir onecms + local sysname sysdist sysver bits + local destconfsdir a2xconf local restart=1 parse_opts "${PRETTYOPTS[@]}" \ --help '$exit_with __display_apache_autoconf_help' \ @@ -252,9 +254,30 @@ function apache_autoconf() { --certsconfdir: certsconfdir= \ --rrdir: rrdir= \ --no-restart restart= \ + --sysname: sysname= \ + --sysdist: sysdist= \ + --sysver: sysver= \ + -6,--squeeze sysver=squeeze \ + -7,--wheezy sysver=wheezy \ + -8,--jessie sysver=jessie \ + --bits: bits= \ @ args -- "$@" && set -- "${args[@]}" || die "$args" + if [ -n "$sysname" -o -n "$sysdist" -o -n "$sysver" ]; then + ensure_sysinfos sysname sysdist sysver + else + sysname=("${MYSYSNAME[@]}") + sysdist=("${MYSYSDIST[@]}") + sysver=("${MYSYSVER[@]}") + bits="$MYBITS" + fi __apache_autoconf_setup || return 1 + if check_sysinfos --vars sysname sysdist sysver bits -d debian -v jessie+; then + destconfsdir="$APACHECONFDIR/conf-available" + a2xconf=1 + elif check_sysinfos --vars sysname sysdist sysver bits -d debian; then + destconfsdir="$APACHECONFDIR/conf.d" + fi # Configuration autoconfdir="$1"; shift @@ -320,7 +343,7 @@ function apache_autoconf() { fi # Gestion des configurations - if [ -d "$confsdir" -a \( -z "$onecms" -o "$oneconf" \) ]; then + if [ -d "$confsdir" -a \( -z "$onecms" -o -n "$oneconf" \) ]; then local -a confs local conf etitle "Installation des configurations" @@ -331,13 +354,13 @@ function apache_autoconf() { estep "$conf" __apache_autoconf_fillcopy \ "$confsdir/$conf" \ - "$APACHECONFDIR/conf-available/$conf" && modified=1 + "$destconfsdir/$conf" && modified=1 done eend fi # Gestion des modules - if [ -d "$modulesdir" -a \( -z "$onecms" -o "$onemodule" \) ]; then + if [ -d "$modulesdir" -a \( -z "$onecms" -o -n "$onemodule" \) ]; then local -a confs local conf etitle "Installation des configurations des modules" @@ -370,7 +393,7 @@ function apache_autoconf() { # Sites local -a enablesites disablesites - if [ -d "$sitesdir" -a \( -z "$onecms" -o "$onesite" \) ]; then + if [ -d "$sitesdir" -a \( -z "$onecms" -o -n "$onesite" \) ]; then local -a confs local conf confname destconf certsconf etitle "Installation des sites" @@ -434,7 +457,7 @@ s#@@ca@@#$APACHESSLCERTSDIR/$(basename "$ca")#g "$confdir/$conf" \ "$APACHECONFDIR/$conf" && modified=1 done - if [ -f "$confdir/confs.conf" ]; then + if [ -f "$confdir/confs.conf" -a -n "$a2xconf" ]; then local -a confs local conf array_from_lines confs "$(<"$confdir/confs.conf" filter_conf)" diff --git a/lib/ulib/sysinfos b/lib/ulib/sysinfos index 704d547..5c8d1e2 100644 --- a/lib/ulib/sysinfos +++ b/lib/ulib/sysinfos @@ -337,6 +337,12 @@ function check_sysinfos() { # check_sysinfos -d debian ubuntu -b 64 # pour tester si l'on est sur une distribution debian ou ubuntu *et* sur un # système 64 bits + # Note: avec l'option --vars, il peut arriver que sysname, sysdist ou sysver + # ne soient pas des tableaux mais des variables scalaires, surtout si elles + # sont fournies par l'utilisateur. Il est conseillé dans ce cas de tester + # toutes les possibilités quand on vérifie une valeur, e.g.: + # check_sysinfos --vars sysname sysdist sysver bits -s linux64 linux32 linux + # pour tester si on est sur un système linux # Avec l'option -v, il est possible de suffixer la valeur avec + ou - selon # que l'on veut toutes les versions situées après ou avant la version # spécifiée. Attention, à cause d'une limitation de l'implémentation, il