(DIR) Home (DIR) Back to phlog I started restructuring my phlog a few days ago, and today I finished it. I don't have to create the folder structure by hand anymore, nor I have to write the gophermaps myself: a small set of groff macros is taking care of that, together with a small Python script which iterates over the post files, invoking troff as needed, creating the folders, and generating the archives. I update the root gophermap (which contains the text of the latest post) with a short ed script, which looks for two markers, `# latest - start' and `# latest - end', deletes all the lines between them, and adds the text of the latest post (which my Python script conveniently leaves in a `latest' gophermap in a format amenable to inclusion). I spent way too much time for my tastes on this, as I had to debug a few issues that popped up because I'm used to the GNU versions of the various tools I used (sed, shell, even ed). A few things I learned: - the NetBSD version of ed doesn't have comments (#), and its read command (r ...) either doesn't do tilde expansion or doesn't follow symlinks. I solved the former issue by shelling out for the comments (*very* inefficient, but I really don't want to leave ed scripts lying around uncommented - they might try to take over the world or some such), and the latter by reading *not* from a file, but from the output of a cat invocation. - the NetBSD version of sed doesn't have character escapes for the replacements (e.g., you can't do s/@@/\t/), so you need to insert the raw characters in there, and it also expects the file parameter to be passed *after* its options (e.g., -i, -e '...').