| 
									
										
										
										
											2022-08-09 17:42:31 -06:00
										 |  |  | #!/bin/zsh | 
					
						
							| 
									
										
										
										
											2023-02-21 18:44:27 -07:00
										 |  |  | use office/latex | 
					
						
							| 
									
										
										
										
											2022-08-09 17:42:31 -06:00
										 |  |  | ##################################################################### | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-21 18:44:27 -07:00
										 |  |  | TEMPLATE_DIR="${0:a:h}/templates" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-06 14:06:44 -07:00
										 |  |  | MAIN() { | 
					
						
							| 
									
										
										
										
											2022-08-09 17:42:31 -06:00
										 |  |  | 	local DOCUMENT_DIR="$EXECUTION_DIR" | 
					
						
							| 
									
										
										
										
											2023-02-21 18:44:27 -07:00
										 |  |  | 	local TEMPLATE=$(GET_TEMPLATES | FZF 'select a template') | 
					
						
							|  |  |  | 	[ ! $TEMPLATE ] && ABORT | 
					
						
							|  |  |  | 	SUCCESS "selected template '$TEMPLATE'" | 
					
						
							| 
									
										
										
										
											2022-08-09 17:42:31 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-21 18:44:27 -07:00
										 |  |  | 	INPUT DOC_TITLE 'document title' || ABORT | 
					
						
							| 
									
										
										
										
											2022-08-09 17:42:31 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	local DOCUMENT_FILE="$DOCUMENT_DIR/$(SLUGIFY_TITLE).tex" | 
					
						
							| 
									
										
										
										
											2023-02-21 18:44:27 -07:00
										 |  |  | 	[ -f "$DOCUMENT_FILE" ] && FAIL 1 "'$(basename $DOCUMENT_FILE)' already exists" | 
					
						
							| 
									
										
										
										
											2022-08-09 17:42:31 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-21 18:44:27 -07:00
										 |  |  | 	INPUT DOC_ID    'document id/subtitle' | 
					
						
							|  |  |  | 	INPUT AUTHOR    'author name' | 
					
						
							|  |  |  | 	INPUT AUTHOR_ID 'author id/title' | 
					
						
							| 
									
										
										
										
											2022-08-09 17:42:31 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		PRINT_TITLE_INFO  | 
					
						
							|  |  |  | 		cat "$TEMPLATE_DIR/$TEMPLATE/template.tex" | 
					
						
							|  |  |  | 	} > "$DOCUMENT_FILE" | 
					
						
							|  |  |  | 	cp "$TEMPLATE_DIR/gitignore" "$DOCUMENT_DIR/.gitignore" | 
					
						
							|  |  |  | 	for FILE in $(find "$TEMPLATE_DIR/$TEMPLATE" -type f | grep -v '/template.tex$') | 
					
						
							|  |  |  | 	do | 
					
						
							|  |  |  | 		cp "$FILE" "$DOCUMENT_DIR/" || return 2 | 
					
						
							|  |  |  | 	done | 
					
						
							|  |  |  | 	[[ ! $TEMPLATE =~ ^basic$ ]] \ | 
					
						
							|  |  |  | 		&& mkdir "$DOCUMENT_DIR/sections" "$DOCUMENT_DIR/graphics" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-21 18:44:27 -07:00
										 |  |  | 	SUCCESS "finished generating '$(basename $DOCUMENT_FILE)' from '$TEMPLATE'" | 
					
						
							| 
									
										
										
										
											2022-08-09 17:42:31 -06:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-06 14:06:44 -07:00
										 |  |  | ##################################################################### | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-09 17:42:31 -06:00
										 |  |  | GET_TEMPLATES() { | 
					
						
							|  |  |  | 	find "$TEMPLATE_DIR" -type d | sed "s^$TEMPLATE_DIR/*^^; /^$/d" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PRINT_TITLE_INFO() { | 
					
						
							|  |  |  | 	local DATESTRING=$(date '+%B %_d, %Y' | sed 's/ \{1,\}/ /g') | 
					
						
							|  |  |  | 	sed " | 
					
						
							|  |  |  | 		s^LATEX-DOC-TITLE^$DOC_TITLE^ | 
					
						
							|  |  |  | 		s^LATEX-DOC-DATE^$DATESTRING^ | 
					
						
							|  |  |  | 		s^LATEX-DOC-ID^$DOC_ID^ | 
					
						
							|  |  |  | 		s^LATEX-AUTHOR-NAME^$AUTHOR^ | 
					
						
							|  |  |  | 		s^LATEX-AUTHOR-ID^$AUTHOR_ID^ | 
					
						
							|  |  |  | 	" "$TEMPLATE_DIR/main.tex" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SLUGIFY_TITLE() { | 
					
						
							|  |  |  | 	echo $DOC_TITLE | sed "s^['\"\\/,\!@#\$%^&*()]*^^g; s^\s\+^-^g;" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ##################################################################### | 
					
						
							| 
									
										
										
										
											2024-02-06 14:06:44 -07:00
										 |  |  | MAIN $@ |