diff --git a/Makefile b/Makefile index 9e3c2001e..8233e5c59 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,7 @@ export +SHELL = bash + # Language to build. Default: $(LANG) LANG = en @@ -33,8 +35,10 @@ help: @echo "" @echo " Targets" @echo "" - @echo " deps Download DITA-OT dist" - @echo " build Build HTML" + @echo " deps Download DITA-OT dist" + @echo " build Build HTML" + @echo " format-xml Consistently indent XML" + @echo " hook Install git pre-commit hook" @echo "" @echo " Variables" @echo "" @@ -64,3 +68,13 @@ build: --args.input.dir="$(REPODIR)" \ --propertyfile="$(DITA_PROPERTY_FILE)" cp -r $(REPODIR)/resources/ $(GT_DOC_OUT) + +# Consistently indent XML +format-xml: + find . -path ./$(notdir $(DITA_OT_DIR)) -prune -false -o -name '*.dita' -a -not \( -size 0 \) |while read i;do \ + echo xmlstarlet fo $$i > $$i.formatted && mv $$i.formatted $$i; \ + done + +# Install git pre-commit hook +hook: + cp dev/pre-commit `git rev-parse --git-path hooks` diff --git a/dev/pre-commit b/dev/pre-commit new file mode 100755 index 000000000..132a4618b --- /dev/null +++ b/dev/pre-commit @@ -0,0 +1,9 @@ +#!/bin/bash + +make format-xml +git add en de +git status --porcelain|grep -qP '^M.*dita$' +if (( $? == 0 ));then + echo "XML needed reformatting, please run 'git commit' again" + exit 1 +fi