Start building a system for creating manpages unique to each build
diff --git a/manpage.sh b/manpage.sh
index 9a7be4a..fcf5adb 100755
--- a/manpage.sh
+++ b/manpage.sh
@@ -28,21 +28,80 @@
 #
 
 usage() {
-	printf "usage: %s ronn_file output_file\n" "$0" 1>&2
+	printf "usage: %s manpage\n" "$0" 1>&2
 	exit 1
 }
 
+gen_manpage() {
+
+	_gen_manpage_args="$1"
+	shift
+
+	_gen_manpage_status="$ALL"
+	_gen_manpage_out="$manualsdir/$manpage/$_gen_manpage_args.1"
+	_gen_manpage_ronn="$manualsdir/$manpage/$_gen_manpage_args.1.ronn"
+	_gen_manpage_ifs="$IFS"
+
+	rm -rf "$_gen_manpage_out" "$_gen_manpage_ronn"
+
+	while IFS= read -r line; do
+
+		if [ "$line" = "{{ end }}" ]; then
+
+			if [ "$_gen_manpage_status" -eq "$ALL" ]; then
+				err_exit "{{ end }} tag without corresponding start tag" 2
+			fi
+
+			_gen_manpage_status="$ALL"
+
+		elif [ "${line#\{\{* $_gen_manpage_args *\}\}}" != "$line" ]; then
+
+			if [ "$_gen_manpage_status" -ne "$ALL" ]; then
+				err_exit "start tag nested in start tag" 3
+			fi
+
+			_gen_manpage_status="$NOSKIP"
+
+		elif [ "${line#\{\{*\}\}}" != "$line" ]; then
+
+			if [ "$_gen_manpage_status" -ne "$ALL" ]; then
+				err_exit "start tag nested in start tag" 3
+			fi
+
+			_gen_manpage_status="$SKIP"
+
+		else
+			if [ "$_gen_manpage_status" -ne "$SKIP" ]; then
+				printf '%s\n' "$line" >> "$_gen_manpage_ronn"
+			fi
+		fi
+
+	done < "$manualsdir/${manpage}.1.ronn.in"
+
+	IFS="$_gen_manpage_ifs"
+
+	ronn --pipe --roff --organization="Gavin D. Howard" --manual="General Commands Manual" \
+		$_gen_manpage_ronn | sed 's|\\fB\\'"'"'\\fR|\\fB'"'"'\\fR|g' > "$_gen_manpage_out"
+}
+
 set -e
 
 script="$0"
 scriptdir=$(dirname "$script")
+manualsdir="$scriptdir/manuals"
 
-test "$#" -ge 2 || usage
+. "$scriptdir/functions.sh"
 
-ronn_file="$1"
+ARGS="A E H N P EH EN EP HN HP NP EHN EHP ENP HNP EHNP"
+ALL=0
+NOSKIP=1
+SKIP=2
+
+test "$#" -eq 1 || usage
+
+manpage="$1"
 shift
 
-output_file="$1"
-shift
-
-ronn --pipe --roff --organization="Gavin D. Howard" --manual="General Commands Manual" $ronn_file | sed 's|\\fB\\'"'"'\\fR|\\fB'"'"'\\fR|g' > $output_file
+for a in $ARGS; do
+	gen_manpage "$a"
+done