ajout nlman

This commit is contained in:
Jephté Clain 2023-11-16 07:20:27 +04:00
parent 633b554547
commit 5760be32e4
2 changed files with 59 additions and 1 deletions

View File

@ -83,7 +83,7 @@ action
* 'NAME=VALUE' pour une option sans argument, forcer la valeur spécifiée; pour
une option avec argument, prendre la valeur spécifiée comme valeur par
défaut si la valeur de l'option est vide
* '$CMD' CMD est évalué avec eval *dès* que l'option est rencontrée.
* '\$CMD' CMD est évalué avec eval *dès* que l'option est rencontrée.
les valeurs suivantes sont initialisées:
* option_ est l'option utilisée, e.g --long-opt
* value_ est la valeur de l'option

58
bin/nlman Executable file
View File

@ -0,0 +1,58 @@
#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
NULIB_NO_IMPORT_DEFAULTS=1
source "$(dirname -- "$0")/../load.sh" || exit 1
LIST_FUNCS=
SHOW_FUNCS=()
function nulib__define_functions() {
function nulib_check_loaded() {
local module
for module in "${NULIB_LOADED_MODULES[@]}"; do
[ "$module" == "$1" ] && return 0
done
return 1
}
function module:() {
if [ -n "$LIST_FUNCS" ]; then
esection "$1"
fi
NULIB_MODULE="$1"
if ! nulib_check_loaded "$1"; then
NULIB_LOADED_MODULES+=("$1")
fi
}
function function:() {
if [ -n "$LIST_FUNCS" ]; then
estep "$1"
else
local func
for func in "${SHOW_FUNCS[@]}"; do
if [ "$func" == "$1" ]; then
esection "$1"
eecho "$2"
fi
done
fi
}
}
require: DEFAULTS
modules=()
args=(
"afficher l'aide d'une fonction nulib"
#"usage"
-m:,--module: modules "charger des modules supplémentaires"
-l,--list LIST_FUNCS=1 "lister les fonctions pour lesquelles une aide existe"
)
parse_args "$@"; set -- "${args[@]}"
for func in "$@"; do
SHOW_FUNCS+=("$func")
done
NULIB_LOADED_MODULES=(nulib)
require: DEFAULTS
for module in "${modules[@]}"; do
require: "$module"
done