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 * '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 une option avec argument, prendre la valeur spécifiée comme valeur par
défaut si la valeur de l'option est vide 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: les valeurs suivantes sont initialisées:
* option_ est l'option utilisée, e.g --long-opt * option_ est l'option utilisée, e.g --long-opt
* value_ est la valeur de l'option * 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