SNHU-LaTeX/Homework {{ cookiecutter.nu.../package.sh

36 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
# Output File
ZIPFILE="Homework {{cookiecutter.number}}.zip"
# List of known LaTeX build artifacts to exclude
EXCLUDE_EXTENSIONS="*.aux *.log *.synctex.gz *.out *.toc *.bbl *.blg *.fls *.fdb_latexmk *.lof *.lot *.nav *.snm *.vrb"
# Generate list of files to include
find . -type f > all_files.txt
# Generate exclude list based on LaTeX build files
touch exclude_list.txt
for ext in $EXCLUDE_EXTENSIONS; do
find . -type f -name "$ext" >> exclude_list.txt
done
# Find PDFs that match a .tex filename and exclude them
while read -r texfile; do
base="${texfile%.tex}"
if [ -f "$base.pdf" ]; then
echo "$base.pdf" >> exclude_list.txt
fi
done < <(find . -type f -name "*.tex")
# Create the final list of files to include by filtering out excluded files
grep -vxFf exclude_list.txt all_files.txt > include_list.txt
# Create the zip archive
zip -@ "$ZIPFILE" < include_list.txt
# Clean up temporary files
rm -f all_files.txt include_list.txt exclude_list.txt
echo "Packaged files into $ZIPFILE"