#!/usr/bin/env python3
"""
===============================================================
Script: compile-all-masters.py
Author: Kris Yotam (aka. khr1st)
Date: 2025-09-29
License: MIT License
Description:
Updates each course's master.tex to include all lectures
and compiles the resulting document. Ensures all notes
are kept in sync and compiled for quick access (e.g. phone).
Inspiration:
Adapted and extended from Gilles Castel's lecture note workflow.
===============================================================
"""
from courses import Courses
def compile_course(course):
"""
Update and compile master.tex for one course.
"""
lectures = course.lectures
# "all" = include every lecture in this course
rng = lectures.parse_range_string("all")
lectures.update_lectures_in_master(rng)
lectures.compile_master()
print(f"[ok] Compiled {lectures.course.info['title']}")
def main():
"""
Iterate over all courses and compile their master files.
"""
for course in Courses():
compile_course(course)
if __name__ == "__main__":
main()