From d683509a0f412d080ffddde7e67bdf0ccd1f17f1 Mon Sep 17 00:00:00 2001 From: Jacob Janzen Date: Sat, 28 Sep 2024 01:43:09 -0500 Subject: makefile works for nixos --- extract_src.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 extract_src.py (limited to 'extract_src.py') diff --git a/extract_src.py b/extract_src.py new file mode 100644 index 0000000..665c4c4 --- /dev/null +++ b/extract_src.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 + +import sys +import re + +with open(sys.argv[1], "r") as inp: + with open(sys.argv[2], "w") as out: + in_src = False + startp = re.compile(r"^\s*#\+begin_src .* :tangle") + endp = re.compile(r"^\s*#\+end_src") + quoted = re.compile(r"^\s*,(\*|,\*|#\+)") + + lines = inp.readlines() + curr = [] + min_spaces = -1 + for line in lines: + if startp.match(line): + in_src = True + elif endp.match(line): + in_src = False + for l in curr: + out.write(l[min_spaces:]) + curr = [] + min_spaces = -1 + elif in_src: + spaces = len(line) - len(line.lstrip()) + if min_spaces == -1 or min_spaces > spaces: + min_spaces = spaces + curr.append(re.sub(r"^(\s*),(\*|,\*|#\+|,#\+)", r"\1\2", line)) -- cgit v1.2.3