diff --git a/shell-completion/Makefile b/shell-completion/Makefile index a84e9a28b..eac81005b 100644 --- a/shell-completion/Makefile +++ b/shell-completion/Makefile @@ -27,6 +27,11 @@ EXTENSIONS := ui web INSTALLED_EXTENSIONS := $(foreach EXT,$(EXTENSIONS),$(shell type hledger-$(EXT) >/dev/null 2>&1 && echo $(EXT))) COMMANDS := $(sort $(shell $(PARSE_COMMANDS)) $(INSTALLED_EXTENSIONS)) + +ifneq ($(.SHELLSTATUS),0) +$(error Error running $(PARSE_COMMANDS)) +endif + CMDOPTFILES := $(foreach CMD,$(COMMANDS),options-$(CMD).txt) all: hledger-completion.bash diff --git a/shell-completion/parse-commands.sh b/shell-completion/parse-commands.sh index 9274747ea..19b5571d9 100755 --- a/shell-completion/parse-commands.sh +++ b/shell-completion/parse-commands.sh @@ -4,7 +4,7 @@ set -uo pipefail declare commands_help -commands_help=$(hledger) +commands_help=$(hledger) || exit { sed -rn 's/^\s+([a-z][-a-z]+)\s+.*/\1/p' <<< "$commands_help" sed -rn 's/^\s+[a-z][-a-z]+\s+\(([a-z][ ,a-z]+)\).*/\1/p' <<< "$commands_help" |