From e9735841230c199029fae80d25caca13e9533c6d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 10 Sep 2026 13:43:47 +0100 Subject: [PATCH] mk: generalised dispatch loop with this new function, i can turn commands on and off by virtue of config. for now, behaviour is unchanged, but this new design means i will be able to disable certain commands in child processes Signed-off-by: Leah Rowe --- include/lib.sh | 30 ++++++++++++++++++++++++++++++ mk | 19 ++++--------------- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/include/lib.sh b/include/lib.sh index 812341f4..840c5cf5 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -27,6 +27,11 @@ update_xbmkver() err "can't write '$versiondate'" "update_xbmkver" "$@"; : } +version() +{ + printf "%s\nWebsite: %s\n" "$relname" "$projectsite" +} + xbmk_sanitize_version() { if [ -z "$version" ]; then @@ -222,6 +227,31 @@ x_() fi } +xeq() +{ + if [ $# -lt 2 ]; then + err "no args" xeq + fi + xbcmd="$1" + chk="$2" + shift 2 + + case "$chk" in + -*) + return 1 + ;; + *) + for eq in "$@"; do + if [ "$chk" = "$eq" ]; then + return 0 + fi + done + ;; + esac + + err "bad command" xeq "$xbcmd" "$chk" "$@" +} + xchk() { if [ $# -lt 3 ]; then diff --git a/mk b/mk index 78d2a603..286e24f9 100755 --- a/mk +++ b/mk @@ -35,26 +35,15 @@ main() cmd="" if [ $# -gt 0 ]; then cmd="$1" - shift 1 fi - case "$cmd" in - version) - printf "%s\nWebsite: %s\n" "$relname" "$projectsite" - ;; - release|download|inject|prep_mr_import) - $cmd "$@" - ;; - -*) + if ! xeq main "$cmd" \ + version release download inject prep_mr_import; then return 0 - ;; - *) - err "bad command" main "$@" - ;; - esac + fi - # some commands disable them. turn them back on! + $cmd "$@" set -u -e return 1