Last active
June 5, 2019 17:03
-
-
Save gto76/ddf450b2a7fa6e00af20 to your computer and use it in GitHub Desktop.
Script that converts source code to PDF
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# | |
# Creates pdf file from source code. | |
tex_file=$(mktemp) ## Random temp file name | |
cat<<EOF >$tex_file ## Print the tex file header | |
\documentclass{article} | |
\usepackage{listings} | |
\usepackage[usenames,dvipsnames]{color} %% Allow color names | |
\lstdefinestyle{customasm}{ | |
belowcaptionskip=1\baselineskip, | |
xleftmargin=\parindent, | |
language=C++, %% Change this to whatever you write in | |
breaklines=true, %% Wrap long lines | |
basicstyle=\footnotesize\ttfamily, | |
commentstyle=\itshape\color{Gray}, | |
stringstyle=\color{Black}, | |
keywordstyle=\bfseries\color{OliveGreen}, | |
identifierstyle=\color{blue}, | |
xleftmargin=-8em, | |
} | |
\usepackage[colorlinks=true,linkcolor=blue]{hyperref} | |
\begin{document} | |
\tableofcontents | |
EOF | |
find . -name "*\.java" -type f ! -regex ".*/\..*" ! -name ".*" ! -name "*~" ! -name 'src2pdf'| | |
sed 's/^\..//' | ## Change ./foo/bar.src to foo/bar.src | |
while read i; do ## Loop through each file | |
echo "\newpage" >> $tex_file ## start each section on a new page | |
echo "\section{$i}" >> $tex_file ## Create a section for each file | |
## This command will include the file in the PDF | |
echo "\lstinputlisting[style=customasm]{$i}" >>$tex_file | |
done && | |
echo "\end{document}" >> $tex_file && | |
pdflatex $tex_file -output-directory . && | |
pdflatex $tex_file -output-directory . ## This needs to be run twice | |
## for the TOC to be generated |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment