I just pushed version 0.0.8 of braindump to pypi; nothing fancy, just adding a
-f option to output the path to the topic file, because I wanted to be able to do something like
cat and get a quick overview of the topic without launching an editor.
braindump -f some-topic
When I was concepting braindump, I wanted to create a command line tool that could easily append random thoughts to a file, but was also flexible enough to use another storage system, if desired — a database, for example, or even something like the Twitter API. To implement the
-f flag quickly, I committed an atrocity against that design by using an implementation detail specific to the filesystem dumper, but I did it knowingly, as a precursor to another feature that I want to implement: a plugin system that will allow for adding new options or even new commands.
There are still a few kinks to work out before I start actually writing code, but with a plugin manager, the FSDumper would be able to register filesystem-specific functionality like the
-f flag without bloating the dumper contract unnecessarily (a database dumper probably wouldn’t have a meaningful value to return for a “give me your location” command, for example). With that in place, braindump then becomes as flexible as the end user wants it to be, and that sounds like a Pretty Cool Thing to me.