generate usage include files only as needed

right now, the update_usage script regenerates the usage files at
every call

by moving this into the makefile, we make those files be generated
only when the source file change, which makes testing docs much faster
This commit is contained in:
Antoine Beaupré 2015-09-30 17:30:13 -04:00
parent bc9679f0e5
commit e3433f433c
2 changed files with 14 additions and 15 deletions

View File

@ -36,8 +36,7 @@ help:
clean: clean:
-rm -rf $(BUILDDIR)/* -rm -rf $(BUILDDIR)/*
html: html: usage
./update_usage.sh
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo @echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html." @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
@ -140,3 +139,16 @@ gh-io: html
inotify: html inotify: html
while inotifywait -r . --exclude usage.rst --exclude '_build/*' ; do make html ; done while inotifywait -r . --exclude usage.rst --exclude '_build/*' ; do make html ; done
# generate list of targets
usage: $(shell borg help | grep -A1 "Available commands:" | tail -1 | sed 's/[{} ]//g;s/,\|^/.rst.inc usage\//g;s/^.rst.inc//;s/usage\/help//')
# generate help file based on usage
usage/%.rst.inc: ../borg/archiver.py
printf ".. _borg_$*:\n\n" > $@
printf "borg $*\n" >> $@
echo -n borg $* | tr 'a-z- ' '-' >> $@
printf "\n::\n\n" >> $@
borg help $* --usage-only | sed -e 's/^/ /' >> $@
printf "\nDescription\n~~~~~~~~~~~\n" >> $@
borg help $* --epilog-only >> $@

View File

@ -1,13 +0,0 @@
#!/bin/bash
if [ ! -d usage ]; then
mkdir usage
fi
for cmd in change-passphrase check create delete extract info init list mount prune serve; do
FILENAME="usage/$cmd.rst.inc"
LINE=`echo -n borg $cmd | tr 'a-z- ' '-'`
echo -e ".. _borg_$cmd:\n" > $FILENAME
echo -e "borg $cmd\n$LINE\n::\n\n" >> $FILENAME
borg help $cmd --usage-only | sed -e 's/^/ /' >> $FILENAME
echo -e "\nDescription\n~~~~~~~~~~~\n" >> $FILENAME
borg help $cmd --epilog-only >> $FILENAME
done