Intégration de la branche release-2.23.0
This commit is contained in:
commit
3f2f3346f7
|
@ -1,3 +1,11 @@
|
||||||
|
## Version 2.23.0 du 15/12/2015-10:06
|
||||||
|
|
||||||
|
501a7d2 cgilsxml: script_name et xslt peuvent être spécifié dans les paramètres QUERY_STRING
|
||||||
|
ebe4599 Intégration de la branche runs
|
||||||
|
35eadc1 correction d'un bug avec la recherche d'un fichier de recette
|
||||||
|
98ba626 les recettes ont maintenant l'extension .rr par défaut
|
||||||
|
a2e863e chercher aussi les scripts dans le sous-répertoire runs dans les répertoires d'hôte
|
||||||
|
|
||||||
## Version 2.22.0 du 07/12/2015-19:05
|
## Version 2.22.0 du 07/12/2015-19:05
|
||||||
|
|
||||||
dbc4d9a uscrontab: ne pas afficher plusieurs fois un même message quand le verrou est posé. n'afficher le message sur la pause qu'avec un tty
|
dbc4d9a uscrontab: ne pas afficher plusieurs fois un même message quand le verrou est posé. n'afficher le message sur la pause qu'avec un tty
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
2.22.0
|
2.23.0
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
009008000
|
009009000
|
||||||
|
|
|
@ -99,7 +99,7 @@ function runs_initdir() {
|
||||||
# d'abord chercher si le répertoire existe déjà
|
# d'abord chercher si le répertoire existe déjà
|
||||||
for runshostdir in "${RUNSHOSTSDIRS[@]}"; do
|
for runshostdir in "${RUNSHOSTSDIRS[@]}"; do
|
||||||
found=
|
found=
|
||||||
for dir in "$runshostdir/$domain/$hostname" "$runshostdir/$host"; do
|
for dir in "$runshostdir/$host/runs" "$runshostdir/$domain/$hostname/runs" "$runshostdir/$host" "$runshostdir/$domain/$hostname"; do
|
||||||
if [ -d "$dir" ]; then
|
if [ -d "$dir" ]; then
|
||||||
found=1
|
found=1
|
||||||
break
|
break
|
||||||
|
@ -121,18 +121,18 @@ function runs_initdir() {
|
||||||
found=
|
found=
|
||||||
for dir in "$runshostdir/$host" "$runshostdir/$domain/$hostname"; do
|
for dir in "$runshostdir/$host" "$runshostdir/$domain/$hostname"; do
|
||||||
if [ -d "$dir" ]; then
|
if [ -d "$dir" ]; then
|
||||||
runshostdir="$dir"
|
runshostdir="$dir/runs"
|
||||||
found=1
|
found=1
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
[ -n "$found" ] || runshostdir="$runshostdir/$host"
|
[ -n "$found" ] || runshostdir="$runshostdir/$host/runs"
|
||||||
else
|
else
|
||||||
runshostdir="${RUNSHOSTSDIRS[0]}/$host"
|
runshostdir="${RUNSHOSTSDIRS[0]}/$host/runs"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
host="$hostname"
|
host="$hostname"
|
||||||
runshostdir="${RUNSHOSTSDIRS[0]}/$host"
|
runshostdir="${RUNSHOSTSDIRS[0]}/$host/runs"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local rscriptt runsconft sysinfost defaultt configt servicest
|
local rscriptt runsconft sysinfost defaultt configt servicest
|
||||||
|
@ -158,24 +158,24 @@ function runs_initdir() {
|
||||||
echo "$sysinfost" >"$runshostdir/sysinfos.conf"
|
echo "$sysinfost" >"$runshostdir/sysinfos.conf"
|
||||||
fi
|
fi
|
||||||
if [ ! -f "$runshostdir/default" ]; then
|
if [ ! -f "$runshostdir/default" ]; then
|
||||||
estep "Création de $(ppath "$runshostdir/default")"
|
estep "Création de $(ppath "$runshostdir/default.rr")"
|
||||||
echo "$defaultt" >"$runshostdir/default"
|
echo "$defaultt" >"$runshostdir/default.rr"
|
||||||
edit_default=1
|
edit_default=1
|
||||||
fi
|
fi
|
||||||
if [ ! -f "$runshostdir/config" ]; then
|
if [ ! -f "$runshostdir/config" ]; then
|
||||||
estep "Création de $(ppath "$runshostdir/config")"
|
estep "Création de $(ppath "$runshostdir/config.rr")"
|
||||||
echo "$configt" >"$runshostdir/config"
|
echo "$configt" >"$runshostdir/config.rr"
|
||||||
fi
|
fi
|
||||||
if [ ! -f "$runshostdir/services" ]; then
|
if [ ! -f "$runshostdir/services" ]; then
|
||||||
estep "Création de $(ppath "$runshostdir/services")"
|
estep "Création de $(ppath "$runshostdir/services.rr")"
|
||||||
echo "$servicest" >"$runshostdir/services"
|
echo "$servicest" >"$runshostdir/services.rr"
|
||||||
fi
|
fi
|
||||||
if [ ! -f "$runshostdir/userdefault" ]; then
|
if [ ! -f "$runshostdir/userdefault" ]; then
|
||||||
estep "Création de $(ppath "$runshostdir/userdefault")"
|
estep "Création de $(ppath "$runshostdir/userdefault.rr")"
|
||||||
echo "$userdefaultt" >"$runshostdir/userdefault"
|
echo "$userdefaultt" >"$runshostdir/userdefault.rr"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[ -n "$edit_default" ] && "${EDITOR:-vi}" "$runshostdir/default"
|
[ -n "$edit_default" ] && "${EDITOR:-vi}" "$runshostdir/default.rr"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
@ -189,9 +189,9 @@ function __runs_create_rscript() {
|
||||||
template="$runsconft"
|
template="$runsconft"
|
||||||
elif [ "$rscriptname" == "sysinfos.conf" ]; then
|
elif [ "$rscriptname" == "sysinfos.conf" ]; then
|
||||||
template="$sysinfost"
|
template="$sysinfost"
|
||||||
elif [ "$rscriptname" == "default" ]; then
|
elif [ "$rscriptname" == "default" -o "$rscriptname" == "default.rr" ]; then
|
||||||
template="$defaultt"
|
template="$defaultt"
|
||||||
elif [ "$rscriptname" == "userdefault" ]; then
|
elif [ "$rscriptname" == "userdefault" -o "$rscriptname" == "userdefault.rr" ]; then
|
||||||
template="$userdefaultt"
|
template="$userdefaultt"
|
||||||
else
|
else
|
||||||
withext "$rscript" || rscript="$rscript.rs"
|
withext "$rscript" || rscript="$rscript.rs"
|
||||||
|
@ -241,7 +241,7 @@ function runs_create_rscript() {
|
||||||
splithost "$host" hostname domain
|
splithost "$host" hostname domain
|
||||||
for runsdir in "${RUNSHOSTSDIRS[@]}"; do
|
for runsdir in "${RUNSHOSTSDIRS[@]}"; do
|
||||||
found=
|
found=
|
||||||
for dir in "$runsdir/$host" "$runsdir/$domain/$hostname"; do
|
for dir in "$runsdir/$host/runs" "$runsdir/$domain/$hostname/runs" "$runsdir/$host" "$runsdir/$domain/$hostname"; do
|
||||||
if [ -d "$dir" ]; then
|
if [ -d "$dir" ]; then
|
||||||
runsdir="$dir"
|
runsdir="$dir"
|
||||||
found=1
|
found=1
|
||||||
|
@ -370,6 +370,8 @@ function runs_find_hostfile() {
|
||||||
splithost "$__runshost" __hostname __domain
|
splithost "$__runshost" __hostname __domain
|
||||||
for __runsdir in "${!__runshostsdirs}"; do
|
for __runsdir in "${!__runshostsdirs}"; do
|
||||||
for __runsfile in \
|
for __runsfile in \
|
||||||
|
"$__runsdir/$__runshost/runs/$__hostfile" \
|
||||||
|
"$__runsdir/$__domain/$__hostname/runs/$__hostfile"\
|
||||||
"$__runsdir/$__runshost/$__hostfile" \
|
"$__runsdir/$__runshost/$__hostfile" \
|
||||||
"$__runsdir/$__domain/$__hostname/$__hostfile"; do
|
"$__runsdir/$__domain/$__hostname/$__hostfile"; do
|
||||||
if [ -e "$__runsfile" ]; then
|
if [ -e "$__runsfile" ]; then
|
||||||
|
@ -417,6 +419,8 @@ function runs_find_datafile() {
|
||||||
splithost "$__runshost" __hostname __domain
|
splithost "$__runshost" __hostname __domain
|
||||||
for __runsdir in "${!__runshostsdirs}"; do
|
for __runsdir in "${!__runshostsdirs}"; do
|
||||||
for __runsfile in \
|
for __runsfile in \
|
||||||
|
"$__runsdir/$__runshost/runs/$__datafile" \
|
||||||
|
"$__runsdir/$__domain/$__hostname/runs/$__datafile"\
|
||||||
"$__runsdir/$__runshost/$__datafile" \
|
"$__runsdir/$__runshost/$__datafile" \
|
||||||
"$__runsdir/$__domain/$__hostname/$__datafile"; do
|
"$__runsdir/$__domain/$__hostname/$__datafile"; do
|
||||||
if [ -e "$__runsfile" ]; then
|
if [ -e "$__runsfile" ]; then
|
||||||
|
@ -475,6 +479,8 @@ function runs_find_scriptfile() {
|
||||||
# initialiser les variables RUNSDIR, RUNSSCRIPT, RUNSSCRIPTDIR,
|
# initialiser les variables RUNSDIR, RUNSSCRIPT, RUNSSCRIPTDIR,
|
||||||
# RUNSSCRIPTNAME, RUNSDIRPATH et RUNSSCRIPTPATH. Retourner 0 en cas de
|
# RUNSSCRIPTNAME, RUNSDIRPATH et RUNSSCRIPTPATH. Retourner 0 en cas de
|
||||||
# succès, 1 en cas d'échec.
|
# succès, 1 en cas d'échec.
|
||||||
|
# $6 vaut ".rs" par défaut est c'est une extension à rajouter au nom
|
||||||
|
# spécifié si le fichier sans l'extension n'existe pas
|
||||||
# RUNSDIR est le répertoire dans lequel a été trouvé le script (parmi les
|
# RUNSDIR est le répertoire dans lequel a été trouvé le script (parmi les
|
||||||
# valeurs fournies dans les tableaux RUNSSCRIPTSDIRS, RUNSMODULESDIRS,
|
# valeurs fournies dans les tableaux RUNSSCRIPTSDIRS, RUNSMODULESDIRS,
|
||||||
# RUNSHOSTSDIRS), RUNSDIRPATH est le répertoire à partir duquel est exprimé
|
# RUNSHOSTSDIRS), RUNSDIRPATH est le répertoire à partir duquel est exprimé
|
||||||
|
@ -489,6 +495,7 @@ function runs_find_scriptfile() {
|
||||||
local __runsscriptsdirs="${3:-RUNSSCRIPTSDIRS}[@]"
|
local __runsscriptsdirs="${3:-RUNSSCRIPTSDIRS}[@]"
|
||||||
local __runsmodulesdirs="${4:-RUNSMODULESDIRS}[@]"
|
local __runsmodulesdirs="${4:-RUNSMODULESDIRS}[@]"
|
||||||
local __runshostsdirs="${5:-RUNSHOSTSDIRS}[@]"
|
local __runshostsdirs="${5:-RUNSHOSTSDIRS}[@]"
|
||||||
|
local __runsext="${6:-.rs}"
|
||||||
local __domain __hostname
|
local __domain __hostname
|
||||||
local __runsdir __runsfile
|
local __runsdir __runsfile
|
||||||
|
|
||||||
|
@ -497,10 +504,12 @@ function runs_find_scriptfile() {
|
||||||
splithost "$__runshost" __hostname __domain
|
splithost "$__runshost" __hostname __domain
|
||||||
for __runsdir in "${!__runshostsdirs}"; do
|
for __runsdir in "${!__runshostsdirs}"; do
|
||||||
for __runsfile in \
|
for __runsfile in \
|
||||||
|
"$__runsdir/$__runshost/runs/$__scriptfile" \
|
||||||
|
"$__runsdir/$__domain/$__hostname/runs/$__scriptfile" \
|
||||||
"$__runsdir/$__runshost/$__scriptfile" \
|
"$__runsdir/$__runshost/$__scriptfile" \
|
||||||
"$__runsdir/$__domain/$__hostname/$__scriptfile"; do
|
"$__runsdir/$__domain/$__hostname/$__scriptfile"; do
|
||||||
if [ ! -f "$__runsfile" -a -f "$__runsfile.rs" ]; then
|
if [ "${__runsfile%$__runsext}" == "$__runsfile" ]; then
|
||||||
__runsfile="$__runsfile.rs"
|
[ ! -f "$__runsfile" -a -f "$__runsfile$__runsext" ] && __runsfile="$__runsfile$__runsext"
|
||||||
fi
|
fi
|
||||||
if [ -e "$__runsfile" ]; then
|
if [ -e "$__runsfile" ]; then
|
||||||
runs_initvars "$__runsfile" "$__runsdir" "$__runsdirpath" "$__scriptfile"
|
runs_initvars "$__runsfile" "$__runsdir" "$__runsdirpath" "$__scriptfile"
|
||||||
|
@ -512,8 +521,8 @@ function runs_find_scriptfile() {
|
||||||
# puis chercher dans les répertoires des scripts et des modules
|
# puis chercher dans les répertoires des scripts et des modules
|
||||||
for __runsdir in "${!__runsscriptsdirs}" "${!__runsmodulesdirs}"; do
|
for __runsdir in "${!__runsscriptsdirs}" "${!__runsmodulesdirs}"; do
|
||||||
__runsfile="$__runsdir/$__scriptfile"
|
__runsfile="$__runsdir/$__scriptfile"
|
||||||
if [ ! -f "$__runsfile" -a -f "$__runsfile.rs" ]; then
|
if [ "${__runsfile%$__runsext}" == "$__runsfile" ]; then
|
||||||
__runsfile="$__runsfile.rs"
|
[ ! -f "$__runsfile" -a -f "$__runsfile$__runsext" ] && __runsfile="$__runsfile$__runsext"
|
||||||
fi
|
fi
|
||||||
if [ -e "$__runsfile" ]; then
|
if [ -e "$__runsfile" ]; then
|
||||||
runs_initvars "$__runsfile" "$__runsdir" "$__runsdir" "$__scriptfile"
|
runs_initvars "$__runsfile" "$__runsdir" "$__runsdir" "$__scriptfile"
|
||||||
|
@ -541,6 +550,16 @@ function runs_find_scriptfile_reverse() {
|
||||||
if [ -n "$__runshost" ]; then
|
if [ -n "$__runshost" ]; then
|
||||||
splithost "$__runshost" __hostname __domain
|
splithost "$__runshost" __hostname __domain
|
||||||
for __runsdir in "${!__runshostsdirs}"; do
|
for __runsdir in "${!__runshostsdirs}"; do
|
||||||
|
__prefix="$__runsdir/$__runshost/runs/"
|
||||||
|
if [ "${__runsscript#$__prefix}" != "$__runsscript" ]; then
|
||||||
|
runs_initvars "$__runsscript" "$__runsdir" "$__prefix" "${__runsscript#$__prefix/}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
__prefix="$__runsdir/$__domain/$__hostname/runs/"
|
||||||
|
if [ "${__runsscript#$__prefix}" != "$__runsscript" ]; then
|
||||||
|
runs_initvars "$__runsscript" "$__runsdir" "$__prefix" "${__runsscript#$__prefix/}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
__prefix="$__runsdir/$__runshost/"
|
__prefix="$__runsdir/$__runshost/"
|
||||||
if [ "${__runsscript#$__prefix}" != "$__runsscript" ]; then
|
if [ "${__runsscript#$__prefix}" != "$__runsscript" ]; then
|
||||||
runs_initvars "$__runsscript" "$__runsdir" "$__prefix" "${__runsscript#$__prefix/}"
|
runs_initvars "$__runsscript" "$__runsdir" "$__prefix" "${__runsscript#$__prefix/}"
|
||||||
|
@ -613,11 +632,26 @@ function runs_recipe() {
|
||||||
recipe="$(abspath "$1")"
|
recipe="$(abspath "$1")"
|
||||||
if [ -d "$recipe" ]; then
|
if [ -d "$recipe" ]; then
|
||||||
if is_root; then
|
if is_root; then
|
||||||
recipe="$recipe/default"
|
if [ -f "$recipe/default.rr" ]; then
|
||||||
|
recipe="$recipe/default.rr"
|
||||||
|
elif [ -f "$recipe/default" ]; then
|
||||||
|
recipe="$recipe/default"
|
||||||
|
else
|
||||||
|
recipe="$recipe/default.rr"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
recipe="$recipe/userdefault"
|
if [ -f "$recipe/userdefault.rr" ]; then
|
||||||
|
recipe="$recipe/userdefault.rr"
|
||||||
|
elif [ -f "$recipe/userdefault" ]; then
|
||||||
|
recipe="$recipe/userdefault"
|
||||||
|
else
|
||||||
|
recipe="$recipe/userdefault.rr"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
if [ "${recipe%.rr}" == "$recipe" ]; then
|
||||||
|
[ ! -f "$recipe" -a -f "$recipe.rr" ] && recipe="$recipe.rr"
|
||||||
|
fi
|
||||||
if [ ! -f "$recipe" ]; then
|
if [ ! -f "$recipe" ]; then
|
||||||
eerror "$(ppath "$recipe"): fichier introuvable"
|
eerror "$(ppath "$recipe"): fichier introuvable"
|
||||||
return 1
|
return 1
|
||||||
|
@ -708,7 +742,7 @@ function runs_recipepath() {
|
||||||
# pas été trouvé, sinon retourner la valeur de retour de runs_recipe()
|
# pas été trouvé, sinon retourner la valeur de retour de runs_recipe()
|
||||||
local RUNSDIR RUNSSCRIPT RUNSSCRIPTDIR RUNSSCRIPTNAME RUNSDIRPATH RUNSSCRIPTPATH
|
local RUNSDIR RUNSSCRIPT RUNSSCRIPTDIR RUNSSCRIPTNAME RUNSDIRPATH RUNSSCRIPTPATH
|
||||||
local RUNSSCRIPTSDIRS RUNSMODULESDIRS RUNSHOSTSDIRS; __runs_setpath
|
local RUNSSCRIPTSDIRS RUNSMODULESDIRS RUNSHOSTSDIRS; __runs_setpath
|
||||||
if ! runs_find_scriptfile "$1"; then
|
if ! runs_find_scriptfile "$1" "" "" "" "" ".rr"; then
|
||||||
eerror "$1: fichier introuvable. Vérifiez les valeurs suivantes:
|
eerror "$1: fichier introuvable. Vérifiez les valeurs suivantes:
|
||||||
RUNSSCRIPTSPATH=$RUNSSCRIPTSPATH
|
RUNSSCRIPTSPATH=$RUNSSCRIPTSPATH
|
||||||
RUNSMODULESPATH=$RUNSMODULESPATH
|
RUNSMODULESPATH=$RUNSMODULESPATH
|
||||||
|
|
|
@ -213,49 +213,70 @@ def run_cgilsxml():
|
||||||
|
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
OP = OptionParser(usage=u"\n\t%prog [options] /path/to/dir", description=__doc__)
|
OP = OptionParser(usage=u"\n\t%prog [options] /path/to/dir", description=__doc__)
|
||||||
OP.add_option('-t', '--xslt', dest='xslt',
|
|
||||||
help=u"Ajouter le chemin vers la feuille de style XSLT dans le flux XML généré")
|
|
||||||
OP.add_option('-e', '--spec', dest='spec', action='callback', callback=add_spec, type="string",
|
OP.add_option('-e', '--spec', dest='spec', action='callback', callback=add_spec, type="string",
|
||||||
help=u"Spécifier l'expression régulière permettant de sélectionner les fichiers à lister. L'expression régulière peut définir des groupes qui sont utilisées pour l'extraction des variables.\nIl est possible de spécifier cette option plusieurs fois.\nNote: TOUTES les expressions régulières sont testées par rapport au nom du fichier, et pour celles qui correspondent, les variables correspondantes sont définies. Il faut donc ordonner les expressions régulières de la plus générale à la plus spécifique, contrairement à ce qui se fait d'habitude.")
|
help=u"Spécifier l'expression régulière permettant de sélectionner les fichiers à lister. L'expression régulière peut définir des groupes qui sont utilisées pour l'extraction des variables."
|
||||||
|
+ u"\n Il est possible de spécifier cette option plusieurs fois."
|
||||||
|
+ u"\n Note: TOUTES les expressions régulières sont testées par rapport au nom du fichier, et pour celles qui correspondent, les variables correspondantes sont définies. Il faut donc ordonner les expressions régulières de la plus générale à la plus spécifique, contrairement à ce qui se fait d'habitude.")
|
||||||
OP.add_option('-v', '--var', dest='var', action='callback', callback=add_var, type="string",
|
OP.add_option('-v', '--var', dest='var', action='callback', callback=add_var, type="string",
|
||||||
help=u"Définir la variable NAME à la valeur de l'expression VAR_EXPR. Dans cette expression, il est possible d'utiliser des expressions de la forme %%(var)s pour inclure des variables déjà définies, ou \\N et \\g<NAME> pour inclure respective le groupe numéro N et le groupe nommé NAME de l'expression régulière --spec.\nCette option peut être spécifiée plusieurs fois. Elle s'applique à l'expression régulière définie par la dernière option --spec")
|
help=u"Définir la variable NAME à la valeur de l'expression VAR_EXPR. Dans cette expression, il est possible d'utiliser des expressions de la forme %%(var)s pour inclure des variables déjà définies, ou \\N et \\g<NAME> pour inclure respective le groupe numéro N et le groupe nommé NAME de l'expression régulière --spec."
|
||||||
|
+ u"\n Cette option peut être spécifiée plusieurs fois. Elle s'applique à l'expression régulière définie par la dernière option --spec")
|
||||||
OP.add_option('-g', '--group', dest='group', action='callback', callback=set_group, type="string",
|
OP.add_option('-g', '--group', dest='group', action='callback', callback=set_group, type="string",
|
||||||
help=u"Spécifier l'expression qui permet de construire des ensembles de fichiers sur la base des groupes définis dans l'expression régulière de l'option --spec. Dans cette expression, il est possible d'utiliser des expressions de la forme %%(var)s pour inclure des variables déjà définies, ou \\N ou \\g<NAME> pour inclure respective le groupe numéro N et le groupe nommé NAME de l'expression régulière --spec.\nCette option ne peut être spécifiée qu'une seule fois par option --spec")
|
help=u"Spécifier l'expression qui permet de construire des ensembles de fichiers sur la base des groupes définis dans l'expression régulière de l'option --spec. Dans cette expression, il est possible d'utiliser des expressions de la forme %%(var)s pour inclure des variables déjà définies, ou \\N ou \\g<NAME> pour inclure respective le groupe numéro N et le groupe nommé NAME de l'expression régulière --spec."
|
||||||
|
+ u"\n Cette option ne peut être spécifiée qu'une seule fois par option --spec")
|
||||||
OP.add_option('-s', '--sort', dest='sortby',
|
OP.add_option('-s', '--sort', dest='sortby',
|
||||||
help=u"Spécifier le champ sur lequel trier ainsi que le type de tri à utiliser. SORT_EXPR est de la forme FIELD:TYPE où FIELD est le nom du champ et TYPE est le type de tri: A, D, C et/ou N pour (A)scendant, (D)escendant, (C)haine, (N)numérique. Si un champ est spécifié mais que le type de tri ne l'est pas, la valeur par défaut est AC. Si cette option n'est pas spécifiée, le tri par défaut est 'mtime:DN'.\nIl est possible de spécifier plusieurs champs pour le tri en les séparant par des virgules.")
|
help=u"Spécifier le champ sur lequel trier ainsi que le type de tri à utiliser. SORT_EXPR est de la forme FIELD:TYPE où FIELD est le nom du champ et TYPE est le type de tri: A, D, C et/ou N pour (A)scendant, (D)escendant, (C)haine, (N)numérique. Si un champ est spécifié mais que le type de tri ne l'est pas, la valeur par défaut est AC. Si cette option n'est pas spécifiée, le tri par défaut est 'mtime:DN'."
|
||||||
|
+ u"\n Il est possible de spécifier plusieurs champs pour le tri en les séparant par des virgules.")
|
||||||
OP.add_option('--cgi', dest='cgi_mode', action='store_true',
|
OP.add_option('--cgi', dest='cgi_mode', action='store_true',
|
||||||
help=u"Activer le mode CGI. Ce mode est automatiquement activé si la variable d'environnement REQUEST_METHOD existe.")
|
help=u"Activer le mode CGI. Ce mode est automatiquement activé si la variable d'environnement REQUEST_METHOD existe.")
|
||||||
OP.add_option('--cgi-path-info', dest='path_info',
|
OP.add_option('-P', '--cgi-path-info', dest='path_info',
|
||||||
help=u"Spécifier un chemin d'un fichier à télécharger. En mode CGI, cette valeur est prise dans la variable d'environnement PATH_INFO")
|
help=u"Spécifier un chemin d'un fichier à télécharger. En mode CGI, cette valeur est prise dans la variable d'environnement PATH_INFO")
|
||||||
OP.add_option('--cgi-script-name', dest='script_name',
|
OP.add_option('-Q', '--cgi-query-string', dest='query_string',
|
||||||
help=u"Spécifier la valeur de SCRIPT_NAME pour provisionner l'environnement du fichier résultat. En mode CGI, cette valeur est prise dans la variable d'environnement du même nom.")
|
help=u"Spécifier la valeur de QUERY_STRING pour provisionner l'environnement du fichier résultat. En mode CGI, cette valeur est prise dans la variable d'environnement QUERY_STRING.")
|
||||||
OP.add_option('--cgi-query-string', dest='query_string',
|
OP.add_option('-N', '--cgi-script-name', dest='script_name',
|
||||||
help=u"Spécifier la valeur de QUERY_STRING pour provisionner l'environnement du fichier résultat. En mode CGI, cette valeur est prise dans la variable d'environnement du même nom.")
|
help=u"Spécifier la valeur de SCRIPT_NAME pour provisionner l'environnement du fichier résultat. En mode CGI, cette option est automatiquement activée si QUERY_STRING contient le paramètre script_name=SCRIPT_NAME, la valeur par défaut étant la valeur de la variable d'environnement SCRIPT_NAME."
|
||||||
OP.add_option('--cgi-param-group', dest='select_group',
|
+ u"\n Note: pour la lecture des paramètres de QUERY_STRING, l'API cgi.FieldStorage() est utilisé, ce qui fait que la valeur éventuellement fournie par l'option --cgi-query-string est ignorée."
|
||||||
help=u"Sélectionner le groupe spécifié. Seuls les fichiers du groupe sont affichés. En mode CGI, cette option est automatiquement activée si QUERY_STRING contient le paramètre group=GROUP.\nNote: pour le calcul de cette valeur, l'API cgi.FieldStorage() est utilisé, ce qui fait que la valeur éventuellement fournie par l'option --cgi-query-string est ignorée.")
|
+ u"\n L'ordre de priorité pour le calcul de cette valeur est: d'abord le paramètre script_name dans QUERY_STRING, puis l'option de la ligne de commande, enfin la valeur de la variable d'environnement")
|
||||||
|
OP.add_option('-G', '--cgi-param-group', dest='select_group',
|
||||||
|
help=u"Sélectionner le groupe spécifié. Seuls les fichiers du groupe sont affichés. En mode CGI, cette option est automatiquement activée si QUERY_STRING contient le paramètre group=GROUP."
|
||||||
|
+ u"\n cf la note pour --cgi-script-name pour le calcul de cette valeur."
|
||||||
|
+ u"\n L'ordre de priorité pour le calcul de cette valeur est: d'abord le paramètre group dans QUERY_STRING, puis l'option de la ligne de commande")
|
||||||
|
OP.add_option('-t', '--cgi-param-xslt', dest='xslt',
|
||||||
|
help=u"Ajouter le chemin vers la feuille de style XSLT dans le flux XML généré. En mode CGI, cette option est automatiquement activée si QUERY_STRING contient le paramètre xslt=XSLT."
|
||||||
|
+ u"\n cf la note pour --cgi-script-name pour le calcul de cette valeur."
|
||||||
|
+ u"\n L'ordre de priorité pour le calcul de cette valeur est: d'abord le paramètre xslt dans QUERY_STRING, puis l'option de la ligne de commande")
|
||||||
env = dict(filters=[], filter=None)
|
env = dict(filters=[], filter=None)
|
||||||
o, args = OP.parse_args()
|
o, args = OP.parse_args()
|
||||||
filters = env['filters']
|
filters = env['filters']
|
||||||
filter = env['filter']
|
filter = env['filter']
|
||||||
xslt, sortby, cgi_mode = o.xslt, o.sortby, o.cgi_mode
|
sortby = o.sortby
|
||||||
cgi_path_info = o.path_info
|
|
||||||
cgi_script_name = o.script_name
|
|
||||||
cgi_query_string = o.query_string
|
|
||||||
cgi_select_group = o.select_group
|
|
||||||
|
|
||||||
environ = os.environ
|
environ = os.environ
|
||||||
if cgi_mode is None: cgi_mode = 'REQUEST_METHOD' in environ
|
cgi_mode = o.cgi_mode
|
||||||
|
if cgi_mode is None:
|
||||||
|
cgi_mode = 'REQUEST_METHOD' in environ
|
||||||
if cgi_mode:
|
if cgi_mode:
|
||||||
import cgi
|
import cgi; form = cgi.FieldStorage()
|
||||||
form = cgi.FieldStorage()
|
cgi_path_info = o.path_info
|
||||||
if 'group' in form and cgi_select_group is None:
|
if cgi_path_info is None and 'PATH_INFO' in environ : cgi_path_info = environ.get('PATH_INFO')
|
||||||
cgi_select_group = form.getfirst("group")
|
cgi_query_string = o.query_string
|
||||||
if cgi_path_info is None and 'PATH_INFO' in environ :
|
if cgi_query_string is None and 'QUERY_STRING' in environ : cgi_query_string = environ.get('QUERY_STRING')
|
||||||
cgi_path_info = environ.get('PATH_INFO')
|
cgi_script_name = None
|
||||||
if cgi_script_name is None and 'SCRIPT_NAME' in environ :
|
if 'script_name' in form and cgi_script_name is None: cgi_script_name = form.getfirst("script_name")
|
||||||
cgi_script_name = environ.get('SCRIPT_NAME')
|
if cgi_script_name is None: cgi_script_name = o.script_name
|
||||||
if cgi_query_string is None and 'QUERY_STRING' in environ :
|
if cgi_script_name is None and 'SCRIPT_NAME' in environ : cgi_script_name = environ.get('SCRIPT_NAME')
|
||||||
cgi_query_string = environ.get('QUERY_STRING')
|
cgi_select_group = None
|
||||||
|
if 'group' in form and cgi_select_group is None: cgi_select_group = form.getfirst("group")
|
||||||
|
if cgi_select_group is None: cgi_select_group = o.select_group
|
||||||
|
cgi_xslt = None
|
||||||
|
if 'xslt' in form and cgi_xslt is None: cgi_xslt = form.getfirst("xslt")
|
||||||
|
if cgi_xslt is None: cgi_xslt = o.xslt
|
||||||
|
else:
|
||||||
|
cgi_path_info = o.path_info
|
||||||
|
cgi_query_string = o.query_string
|
||||||
|
cgi_script_name = o.script_name
|
||||||
|
cgi_select_group = o.select_group
|
||||||
|
cgi_xslt = o.xslt
|
||||||
|
|
||||||
if cgi_path_info is not None: cgi_path_info = path.split(cgi_path_info)[1]
|
if cgi_path_info is not None: cgi_path_info = path.split(cgi_path_info)[1]
|
||||||
|
|
||||||
if filter is not None: filters.append(filter)
|
if filter is not None: filters.append(filter)
|
||||||
|
@ -299,7 +320,7 @@ def run_cgilsxml():
|
||||||
if cgi_mode:
|
if cgi_mode:
|
||||||
print "Content-Type: text/xml; charset=UTF-8"
|
print "Content-Type: text/xml; charset=UTF-8"
|
||||||
print
|
print
|
||||||
print_files(files, fgroups, cgi_select_group, cgi_script_name, cgi_query_string, xslt)
|
print_files(files, fgroups, cgi_select_group, cgi_script_name, cgi_query_string, cgi_xslt)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
run_cgilsxml()
|
run_cgilsxml()
|
||||||
|
|
2
runs
2
runs
|
@ -277,6 +277,8 @@ elif [ "$action" == "list" ]; then
|
||||||
rscriptpaths=()
|
rscriptpaths=()
|
||||||
if [ -n "$runshost" ]; then
|
if [ -n "$runshost" ]; then
|
||||||
for runsdir in "${RUNSHOSTSDIRS[@]}"; do
|
for runsdir in "${RUNSHOSTSDIRS[@]}"; do
|
||||||
|
find_items rscriptpaths "$runsdir/$runshost/runs"
|
||||||
|
find_items rscriptpaths "$runsdir/$domain/$hostname/runs"
|
||||||
find_items rscriptpaths "$runsdir/$runshost"
|
find_items rscriptpaths "$runsdir/$runshost"
|
||||||
find_items rscriptpaths "$runsdir/$domain/$hostname"
|
find_items rscriptpaths "$runsdir/$domain/$hostname"
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue