##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
## Pilotage de wotaskd
##@cooked nocomments
##@require base
##@require sysinfos
##@require webobjects
uprovide wotaskd
urequire base sysinfos webobjects

WOT_DEFAULT_HOST=localhost
WOT_DEFAULT_PORT="${WOTASKD_PORT:-1085}"

function __get_woturl() {
    # $1 est un nom d'hôte de la forme host[:port]
    # Le transfomer en url pour attaquer le wotaskd:
    #     http://host:port/cgi-bin/WebObjects/wotaskd.woa/$2[&$3...]
    # $2 est l'url relative à attaquer. Si $3 est spécifié, c'est le mot de
    # passe pour l'accès au moniteur. Si $4...* sont spécifiés, ce sont d'autres
    # paramètres.
    local host port paramsep="?"
    splitpair "$1" host port; shift
    [ -n "$host" ] || host="$WOT_DEFAULT_HOST"
    [ -n "$port" ] || port="$WOT_DEFAULT_PORT"

    local woturl="http://$host:$port/cgi-bin/WebObjects/wotaskd.woa"
    if [ -n "$1" ]; then
        [ "${1#/}" == "$1" ] && woturl="$woturl/"
        woturl="$woturl$1"
    fi; shift
    if [ -n "$1" ]; then
        woturl="$woturl${paramsep}pw=$1"
        paramsep="&"
    fi; shift
    while [ -n "$1" ]; do
        woturl="$woturl${paramsep}$1"; shift
        paramsep="&"
    done
    echo "$woturl"
}
        
function wot_config() {
    # Afficher la configuration de wotaskd
    local clean status=1
    if [ -z "$WORAURL_DATA" ]; then
        local WORAURL_DATA
        ac_set_tmpfile WORAURL_DATA
        clean=1
    fi
    if wogeturl "$(__get_woturl "$1" wa/woconfig)"; then
        cat "$WORAURL_DATA"
        status=0
    else
        status=1
    fi
    [ -n "$clean" ] && rm -f "$WORAURL_DATA"
    return $status
}