mirror of
https://github.com/velocitatem/PHANTOM.git
synced 2026-05-31 08:33:36 +00:00
concat of code
This commit is contained in:
2
Makefile
2
Makefile
@@ -11,6 +11,8 @@ $(BUILDDIR):
|
|||||||
mkdir -p paper/$(BUILDDIR)
|
mkdir -p paper/$(BUILDDIR)
|
||||||
|
|
||||||
pdf: $(BUILDDIR)
|
pdf: $(BUILDDIR)
|
||||||
|
@echo "Concatenating source code..."
|
||||||
|
@bash paper/concat_code.sh
|
||||||
@cd $(SRCDIR) && \
|
@cd $(SRCDIR) && \
|
||||||
$(LATEXMK) -pdf -jobname=$(JOBNAME) \
|
$(LATEXMK) -pdf -jobname=$(JOBNAME) \
|
||||||
-interaction=nonstopmode -file-line-error \
|
-interaction=nonstopmode -file-line-error \
|
||||||
|
|||||||
76
paper/concat_code.sh
Executable file
76
paper/concat_code.sh
Executable file
@@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Script to concatenate all code from source directories for LaTeX inclusion
|
||||||
|
|
||||||
|
OUTPUT_FILE="paper/build/concatenated_code.tex"
|
||||||
|
PROJECT_ROOT="/home/velocitatem/Documents/Projects/PHANTOM"
|
||||||
|
|
||||||
|
# Create output directory if it doesn't exist
|
||||||
|
mkdir -p "$(dirname "$OUTPUT_FILE")"
|
||||||
|
|
||||||
|
# Clear the output file
|
||||||
|
> "$OUTPUT_FILE"
|
||||||
|
|
||||||
|
# Function to add a file to the concatenated output
|
||||||
|
add_file() {
|
||||||
|
local filepath="$1"
|
||||||
|
local relpath="${filepath#$PROJECT_ROOT/}"
|
||||||
|
|
||||||
|
# Get file extension
|
||||||
|
local ext="${filepath##*.}"
|
||||||
|
|
||||||
|
# Map extensions to listings language
|
||||||
|
case "$ext" in
|
||||||
|
py) lang="Python" ;;
|
||||||
|
js|jsx|ts|tsx) lang="JavaScript" ;;
|
||||||
|
sh) lang="bash" ;;
|
||||||
|
yml|yaml) lang="Python" ;;
|
||||||
|
Dockerfile) lang="bash" ;;
|
||||||
|
*) lang="" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Add section header and code listing
|
||||||
|
echo "\\subsection{${relpath}}" >> "$OUTPUT_FILE"
|
||||||
|
if [ -n "$lang" ]; then
|
||||||
|
echo "\\begin{lstlisting}[language=${lang},caption={${relpath}}]" >> "$OUTPUT_FILE"
|
||||||
|
else
|
||||||
|
echo "\\begin{lstlisting}[caption={${relpath}}]" >> "$OUTPUT_FILE"
|
||||||
|
fi
|
||||||
|
cat "$filepath" >> "$OUTPUT_FILE"
|
||||||
|
echo "" >> "$OUTPUT_FILE"
|
||||||
|
echo "\\end{lstlisting}" >> "$OUTPUT_FILE"
|
||||||
|
echo "" >> "$OUTPUT_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add header
|
||||||
|
cat >> "$OUTPUT_FILE" << 'EOF'
|
||||||
|
% Auto-generated code concatenation
|
||||||
|
% DO NOT EDIT MANUALLY - Generated by concat_code.sh
|
||||||
|
|
||||||
|
\section{Source Code}
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Process each directory
|
||||||
|
echo "Concatenating code from source directories..."
|
||||||
|
|
||||||
|
# Backend
|
||||||
|
find "$PROJECT_ROOT/backend" -type f \( -name "*.py" -o -name "*.js" -o -name "*.sh" -o -name "*.yml" -o -name "*.yaml" \) | sort | while read -r file; do
|
||||||
|
add_file "$file"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Experiments
|
||||||
|
find "$PROJECT_ROOT/experiments" -type f \( -name "*.py" -o -name "*.js" -o -name "*.sh" -o -name "*.yml" -o -name "*.yaml" \) | sort | while read -r file; do
|
||||||
|
add_file "$file"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Docker
|
||||||
|
find "$PROJECT_ROOT/docker" -type f \( -name "*.py" -o -name "*.sh" -o -name "*.yml" -o -name "*.yaml" -o -name "Dockerfile*" \) | sort | while read -r file; do
|
||||||
|
add_file "$file"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Web/src
|
||||||
|
find "$PROJECT_ROOT/web/src" -type f \( -name "*.js" -o -name "*.jsx" -o -name "*.ts" -o -name "*.tsx" \) | sort | while read -r file; do
|
||||||
|
add_file "$file"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Code concatenation complete: $OUTPUT_FILE"
|
||||||
@@ -37,4 +37,8 @@ The primary objective of this thesis is to develop and validate pricing heuristi
|
|||||||
\input{chapters/01-intro}
|
\input{chapters/01-intro}
|
||||||
|
|
||||||
\printbibliography
|
\printbibliography
|
||||||
|
|
||||||
|
\appendix
|
||||||
|
\input{../build/concatenated_code}
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|||||||
@@ -5,6 +5,22 @@
|
|||||||
\usepackage{subcaption}
|
\usepackage{subcaption}
|
||||||
\usepackage{siunitx}
|
\usepackage{siunitx}
|
||||||
|
|
||||||
|
\usepackage{listings}
|
||||||
|
\usepackage{xcolor}
|
||||||
|
|
||||||
|
\lstset{
|
||||||
|
basicstyle=\ttfamily\footnotesize,
|
||||||
|
breaklines=true,
|
||||||
|
frame=single,
|
||||||
|
numbers=left,
|
||||||
|
numberstyle=\tiny\color{gray},
|
||||||
|
keywordstyle=\color{blue},
|
||||||
|
commentstyle=\color{green!60!black},
|
||||||
|
stringstyle=\color{red},
|
||||||
|
showstringspaces=false,
|
||||||
|
captionpos=b
|
||||||
|
}
|
||||||
|
|
||||||
% Use biblatex instead of natbib (acmart default)
|
% Use biblatex instead of natbib (acmart default)
|
||||||
\usepackage[backend=bibtex,style=numeric]{biblatex}
|
\usepackage[backend=bibtex,style=numeric]{biblatex}
|
||||||
\addbibresource{bib/references.bib}
|
\addbibresource{bib/references.bib}
|
||||||
|
|||||||
Reference in New Issue
Block a user