Commits


create temp files in /tmp and don't allow writes to "." there's little point to use pledge/unveil and then allow the program to modify itself...


refactor the "thread header" into a separate function


refactor how external file are slurped


refactor the parsing into the module change the mscan format string to siplify the parsing, and refactor the parsing code into the module for reuse. pe is an exception in that it doesn't care about the format string, it just need to decide if the current line starts a new thread or not, that's why it doesn't use the newly introduced `parse'. The new format simplifies pe too though.


mexp: defer skip test after $tid is set otherwise we run with an undef $tid when processing new replies to existing threads.


pledge and unveil the scripts


drop needless mkdirs


mexp: handle the body line by line


move the mid -> path code to a sub in the package


drop needless chomp


move some common code in a module


don't export the mbox this wasn't a good idea as the mbox contains sensitive data (IP addresses, hostnames and whatnot). Not good to publish on the web. Reminded by Stefan


some tweaks to the generated HTML


parallelize exporting mexp is the slowest part of the pipeline. Try to speed it up by paralellizing it. this adds a `pe' scripts that sits in front on N mexp childs and dispatch threads to them, while still outputting the unchanged lines for mkindex. Unscientific testing has shown that this effectively reduces the time for a full export, even if not linearly. (4 jobs cut the time in half, 8 jobs was just barely faster)


assert that $tid is defined