q, textual queue manager
Posted Tue, Apr 21, 2009 in:I wanted a quick, command-line way to handle a list of to-do items and to show me the next item that I want to work on, so I hacked together a quick little program that manages queues for you.
It’s handy for those times where I think of something to do while working on a project, but I am already working on something. With this I can just append it to the end of my queue for that project and forget about it until later.
The code can be gotten from bitbucket, if you are interested.
You can use it like so:
Push items to the top of a queue:
$ q todo push 'do that one thing'
do that one thing
$ q todo push 'do that other thing'
do that other thing
See what’s at the top of a queue:
$ q todo
do that other thing
Pop items from the top of a queue
$ q todo pop
do that one thing
Append items to the end of a queue:
$ q todo append 'do some more things'
do that one thing
The help q prints out if you call it with no parameters:
$ ./q.py usage: ./q.py queuename [command [params]] commands: push Add one or more lines to the queue all Show all the items in the queue append Add one or more lines to the end of the queue pop Remove the top item from the specified queue and push it onto the .done queue for that file next (default) Return the top item in the queue
Other commands I plan on adding include “rot” to swap the current top item with the next item (or with a numerical parameter to move it even further down).
I’ve been experimenting around with Mercurial, and since that was also written in Python, I was wondering what it would take to rewrite this as a hg plugin. It could be handy to use something like this to manage a todo file. It could add some output to show what todo items were marked as done for each commit and perhaps also do a pre-commit hook where it pulls any new lines starting with “TODO:” and adds them to the todo file.