#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8

source /etc/ulib &&
urequire DEFAULTS ||
exit 1
OENC="$UTF8"

PRIHOST=
PUBHOST=
PROXY=1
SUFFIXES=("-clr" "-ssl")
source "$scriptdir/update.conf"

function display_help() {
    local OENC="$UTF8"
    uecho "$scriptname: Mettre à jour RewriteRules.conf et le déployer

USAGE
    $scriptname [options] [prihost [pubhost]]

OPTIONS
    -f INPUT[=rewrite.rules]
    -o OUTPUT[=RewriteRules.conf]
    -w HTML[=rules.html]
        Spécifier le fichier à traiter en entrée et les fichiers à générer en
        sortie. Si l'option -f n'est pas spécifiée, consulter la description de
        l'option -s pour le comportement par défaut.
    -s SUFFIX
        Ajouter un suffixe à la liste des suffixes considérés pour les fichiers
        en entrée. Cette option est ignorée si l'option -f est spécifiée. Par
        défaut, le fichier rewrite.rules puis les fichiers de la forme
        rewrite\$SUFFIX.rules sont traités s'ils existent.
        La liste des suffixes par défaut est (${SUFFIXES[*]})
    -d, --deploy
        Déployer la configuration avec uinst après la génération
    -n, --no-proxy
        Ne pas générer les ACLs pour les réécritures de type proxy"
}

input=
rules=
html=--NOT-SET--
suffixes=()
deploy=
proxy="$PROXY"
parse_opts \
    --help '$exit_with display_help' \
    -f:,--input: input= \
    -o:,--output: rules= \
    -w:,--html:,--html: html= \
    -s:,--suffix: suffixes \
    -d,--deploy deploy=1 \
    -n,--no-proxy proxy= \
    "${PRETTYOPTS[@]}" @ args -- "$@" && set -- "${args[@]}" || die "$args"

prihost="${1:-$PRIHOST}"
pubhost="${2:-${PUBHOST:-$prihost}}"

[ -n "$prihost" ] || die "Il faut spécifier l'hôte pour lequel faire la génération. Modifiez le cas échéant le fichier update.conf"

if [ -n "$input" ]; then
    [ -n "$rules" ] || rules=RewriteRules.conf
    [ -n "$html" ] || html=rules.html
    [ "$html" == "--NOT-SET--" ] && html=
    mkRewriteRules ${proxy:+-p} -f "$input" -o "$rules" ${html:+-w "$html"} "$pubhost"
else
    for suffix in "" "${SUFFIXES[@]}"; do
        input="$scriptdir/rewrite$suffix.rules"
        rules="$scriptdir/RewriteRules$suffix.conf"
        html="$scriptdir/rules$suffix.html"
        [ -f "$input" ] || continue
        mkRewriteRules ${proxy:+-p} -f "$input" -o "$rules" -w "$html" "$pubhost"
    done
fi

[ -n "$deploy" ] && ruinst -h "root@$prihost" "$scriptdir" -- -y