diff --git a/unifytex b/unifytex new file mode 100755 index 0000000..e3eff72 --- /dev/null +++ b/unifytex @@ -0,0 +1,44 @@ +#!/bin/python3 + +import os +import argparse + +def dynamic_includes(folder_path): + """Generate separate LaTeX files recursively""" + consolidated_dir = os.path.join(os.getcwd(), "consolidated") + os.makedirs(consolidated_dir, exist_ok=True) + + for root, dirs, files in os.walk(folder_path): + if not files or os.path.abspath(root) == os.path.abspath(consolidated_dir): + continue + + if root == folder_path: + folder_name = os.path.basename(folder_path) or "root" + else: + folder_name = os.path.basename(root) + + output_file = os.path.join(consolidated_dir, f"{folder_name}.tex") + + with open(output_file, "w") as f: + f.write("% Autogenerated by unifytex (git.confest.im/boyan_k/Coding_Tools/)\n") + for file in sorted(files): + if file.endswith(".tex"): + relative_path = os.path.relpath(os.path.join(root, file), folder_path) + f.write(f"\\input{{{relative_path}}}\n") + + print(f"Generated {output_file}") + +def main(): + parser = argparse.ArgumentParser(description="Generate separate LaTeX include files for .tex files recursively") + parser.add_argument("directory", help="The directory to process.") + args = parser.parse_args() + + directory = args.directory + + if not os.path.isdir(directory): + raise FileNotFoundError(f"Error: The directory '{directory}' does not exist.") + + dynamic_includes(directory) + +if __name__ == "__main__": + main()