aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-09-27 14:46:37 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2023-09-27 14:47:38 +0200
commit5cc1c37698ebfe7d7498a86f14e658349214662a (patch)
tree9b64693c63ed3fc5688eef1dd9f69d785de96129 /scripts
parent822b7c1a3c5f5b11b5a43a6c9b054e2b4f8893ea (diff)
downloadunterricht-5cc1c37698ebfe7d7498a86f14e658349214662a.tar.gz
unterricht-5cc1c37698ebfe7d7498a86f14e658349214662a.zip
better detect make targets
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/lesson-make37
1 files changed, 31 insertions, 6 deletions
diff --git a/scripts/lesson-make b/scripts/lesson-make
index 589c6a0d..01db501a 100755
--- a/scripts/lesson-make
+++ b/scripts/lesson-make
@@ -6,12 +6,37 @@ done
FIND="find . -maxdepth 1 '(' -name '*.md' -o -name '*.tex' ')' -a -not -name 'Aufgabe[0-9].tex' -a -not -name '_*'"
-if [[ -f "${MAKEFILE}" ]]; then
- TARGETS=( "$@" )
- if [[ -z "${TARGETS[*]}" ]]; then
- read -ra TARGETS < <(eval "${FIND}" | sed -e 's/\.tex$/.pdf/g' -e 's/\.md$/.pdf/g' -e 's/slides.pdf/slides.pdf slides.pptx/')
- fi
+if [[ ! -f "${MAKEFILE}" ]]; then
+ echo "No root Makefile found" >&2
+ exit 1
+fi
+
+targets=( "$@" )
+if [[ -z "${targets[*]}" ]]; then
+ # Autodetect targets
+ mapfile -t sources < <(eval "${FIND}")
+ for source in "${sources[@]}"; do
+ declare -a new_targets=()
+ case "${source}" in
+ slides.md)
+ new_targets+=("slides.pdf" "slides.pptx")
+ ;;
+ *)
+ mapfile -t new_targets < <(echo "${source}" | sed -e 's/\.tex$/.pdf/g' -e 's/\.md$/.pdf/g')
+ ;;
+ esac
- exec make -f "${MAKEFILE}" "${TARGETS[@]}"
+ if grep -qe 'lehrerversion\|gap\|solution' "${source}"; then
+ declare -a sus_targets=( "${new_targets[@]}" )
+ for sus_target in "${sus_targets[@]}"; do
+ dir=$(dirname "${sus_target}")
+ target_file=$(basename "${sus_target}")
+ new_targets+=("${dir}/lehrer_${target_file}")
+ done
+ fi
+ targets+=( "${new_targets[@]}" )
+ done
fi
+exec make -f "${MAKEFILE}" "${targets[@]}"
+