| 
									
										
										
										
											2021-11-09 06:46:22 +03:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-16 00:58:45 +03:00
										 |  |  | printhelp(){ | 
					
						
							|  |  |  | 	echo "Generate docs from latex package/class" | 
					
						
							|  |  |  | 	echo | 
					
						
							|  |  |  | 	echo "Usage: $(basename $0) [-h] INPUT OUTPUT [PREFIX]" | 
					
						
							|  |  |  | 	echo | 
					
						
							|  |  |  | 	echo "This will:" | 
					
						
							|  |  |  | 	echo "  - keep lines starting with \\def\\<module-name>@[A-Z]\\+" | 
					
						
							|  |  |  | 	echo "  - keep lines starting with '%%'" | 
					
						
							|  |  |  | 	echo "  - %%%%% Text -> \\subsection(Text)" | 
					
						
							|  |  |  | 	echo "  - %%%% Text -> \\section(Text)" | 
					
						
							|  |  |  | 	echo "  - %% >> code -> \\begin{verbatim}code\\end{verbatim}" | 
					
						
							|  |  |  | 	echo | 
					
						
							|  |  |  | 	echo "NOTE: the idea of keeping latex docs in a latex file is far simpler" | 
					
						
							|  |  |  | 	echo "      than all the stuff crammed into .dtx, at least for my needs:" | 
					
						
							|  |  |  | 	echo "          - keep the code readable" | 
					
						
							|  |  |  | 	echo "          - keep the docs readable" | 
					
						
							|  |  |  | 	echo "      in both the repo and in installed form, so .dtx is not used." | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # args/defaults... | 
					
						
							|  |  |  | while true ; do | 
					
						
							|  |  |  | 	case $1 in | 
					
						
							|  |  |  | 		-h|--help) | 
					
						
							|  |  |  | 			printhelp | 
					
						
							|  |  |  | 			exit | 
					
						
							|  |  |  | 			;; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		*) | 
					
						
							|  |  |  | 			break | 
					
						
							|  |  |  | 			;; | 
					
						
							|  |  |  | 	esac | 
					
						
							|  |  |  | done | 
					
						
							| 
									
										
										
										
											2021-11-09 06:46:22 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-14 13:42:06 +03:00
										 |  |  | INPUT=$1 | 
					
						
							| 
									
										
										
										
											2021-11-09 06:46:22 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-14 13:42:06 +03:00
										 |  |  | OUTPUT=$2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PREFIX=$3 | 
					
						
							|  |  |  | if [ -z $PREFIX ] ; then | 
					
						
							|  |  |  | 	PREFIX=% | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-16 00:58:45 +03:00
										 |  |  | # do the work... | 
					
						
							| 
									
										
										
										
											2021-11-14 13:42:06 +03:00
										 |  |  | cat "$INPUT" \
 | 
					
						
							|  |  |  | 	| egrep '(^%'$PREFIX'|^\\edef\\.*@[A-Z][A-Z]+)' \
 | 
					
						
							|  |  |  | 	| sed 's/^\(\\edef\\\).*@/%'$PREFIX'\1/' \
 | 
					
						
							|  |  |  | 	| sed 's/%'$PREFIX'%%%% \(.*\)/%'$PREFIX'\\subsubsection{\1}\\label{subsubsec:\1}/' \
 | 
					
						
							|  |  |  | 	| sed 's/%'$PREFIX'%%% \(.*\)/%'$PREFIX'\\subsection{\1}\\label{subsec:\1}/' \
 | 
					
						
							|  |  |  | 	| sed 's/%'$PREFIX'%% \(.*\)/%'$PREFIX'\\section{\1}\\label{sec:\1}/' \
 | 
					
						
							|  |  |  | 	| sed 's/%'$PREFIX'\s\+>>\s\+\(.*\)/%'$PREFIX'\\begin{verbatim} \1 \\end{verbatim}/' \
 | 
					
						
							| 
									
										
										
										
											2021-11-16 00:58:45 +03:00
										 |  |  | 	| cut -c 3- - \
 | 
					
						
							|  |  |  | 	> "$OUTPUT" | 
					
						
							| 
									
										
										
										
											2021-11-14 13:42:06 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # vim:set ts=4 sw=4 nowrap : |