From ba078e3bb1ea89b4bc1dbd6d4296daa242cbb750 Mon Sep 17 00:00:00 2001 From: Konstantin Baierer Date: Tue, 13 Jul 2021 16:43:00 +0200 Subject: [PATCH] make format-xml to reformat, make hook to set up pre-commit hook --- Makefile | 18 ++++++++++++++++-- dev/pre-commit | 9 +++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100755 dev/pre-commit 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