[NEW] dynamic_main: New dynamic main/argv helper!
See t/dynamic_main.bash for an early example of how to use it.
This commit is contained in:
parent
70100bfce3
commit
3830737655
2 changed files with 28 additions and 0 deletions
18
dynamic_main.bash
Normal file
18
dynamic_main.bash
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
command -v dedcat || \
|
||||||
|
source "$(dirname ${BASH_SOURCE[0]})/logging.bash"
|
||||||
|
|
||||||
|
[ -z "${fns[@]}" ] && dedcat 'ERROR: Empty or undefined ${fns[@]} array!'
|
||||||
|
|
||||||
|
read -d '' HELPSTR <<EOH
|
||||||
|
Usage: $0 OPERATION
|
||||||
|
$EXTRA_NOTE
|
||||||
|
Operations:
|
||||||
|
$(for fn in ${fns[@]}; do echo " $fn: $($fn help)"; done)
|
||||||
|
EOH
|
||||||
|
|
||||||
|
[[ " ${fns[*]} " =~ [[:space:]]${1}[[:space:]] ]] \
|
||||||
|
|| dedcat "$HELPSTR"
|
||||||
|
|
||||||
|
op="$1"
|
||||||
|
shift
|
||||||
|
$op $@
|
||||||
10
t/dynamic_main.bash
Executable file
10
t/dynamic_main.bash
Executable file
|
|
@ -0,0 +1,10 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
fns=( hello )
|
||||||
|
|
||||||
|
hello() {
|
||||||
|
[ "$1" == help ] && echo -n "Say \"hello.\"" && return 0
|
||||||
|
echo hello.
|
||||||
|
}
|
||||||
|
|
||||||
|
. "$(dirname "$0")/../dynamic_main.bash"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue