From 001860ce7856e20b890d8adf425c899540a5d5d3 Mon Sep 17 00:00:00 2001 From: Franklin Wei Date: Tue, 9 May 2017 22:10:59 -0400 Subject: puzzles: full help system - embeds the upstream halibut documentation for plugin use - currently every plugin has a copy of the help text, but in the future a centralized system using overlays might be better Change-Id: Idb6eb9accc2fa786a4c6bc2b704e7cf5fd3f78dd --- apps/plugins/puzzles/genhelp.sh | 52 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 apps/plugins/puzzles/genhelp.sh (limited to 'apps/plugins/puzzles/genhelp.sh') diff --git a/apps/plugins/puzzles/genhelp.sh b/apps/plugins/puzzles/genhelp.sh new file mode 100755 index 0000000000..f243a1d5f6 --- /dev/null +++ b/apps/plugins/puzzles/genhelp.sh @@ -0,0 +1,52 @@ +#!/bin/bash +# usage: ./genhelp.sh > helpcontent.sh +# +# expects halibut to be installed in $PATH: +# http://www.chiark.greenend.org.uk/~sgtatham/halibut + +halibut --text src/puzzles.but + +# preprocess the input + +# strip leading whitespace +cat puzzles.txt | awk '{$1=$1; print}' > puzzles.txt.tmp + +# cut at "Appendix A" +cat puzzles.txt.tmp | awk 'BEGIN { a=1; } /Appendix A/ { a = 0; } a==1' > puzzles.txt + +rm puzzles.txt.tmp + +cat <= 0 && $0 !~ /Chapter/ && substr($0, 1, 1) == "#") n += 1;}' + +cat <= 0 && $0 !~ /Chapter/ && substr($0, 1, 1) == "#") n += 1;}' | head -n 1` + +# generate content +cat puzzles.txt | tail -c +$start | awk '{gsub(/\\/,"\\\\"); if($0 !~ /Chapter/ && substr($0, 1, 1) == "#") begin = "\\n"; else begin = ""; last = substr($0, length($0), 1); if(length($0) == 0 || last == "|" || last == "-" || (term == "\\n" && last == "3")) term="\\n"; else term = " "; print "\"" begin $0 term "\"";}' + +cat <= 0 && $0 !~ /Chapter/ && substr($0, 1, 1) == "#") n += 1;}' | awk 'BEGIN { max = 0; last = 0; } { if($0 - last > max) max = $0 - last; last = $0; } END { print max }'` + +# remember number of chapters +num=`cat puzzles.txt | awk 'BEGIN { x = -1; n = 0; } /#Chapter/ { if($0 !~ / 1:/ && $0 !~ / 2:/) { if( x == -1 ) { x = n; } print n - x","; }} {n += length($0) + 1; if(x >= 0 && $0 !~ /Chapter/ && substr($0, 1, 1) == "#") n += 1;}' | wc -l` + +echo "const int help_maxlen = "$maxlen";" +echo "const int help_numchapters = "$num";" -- cgit v1.2.3