Anyone who uses unix for long ends up with a ~/bin/ or similar that's full of random scripts they wrote. This page is about stuff in my bin, that hasn't yet found a better home outside it, and in most cases probably never will.

I try to be proactive about submitting programs from my bin to projects that they fit into, and if you use debmirror, dpkg-repack, vidir and vipe from moreutils, or svnpath, debcommit, bts, grep-excuses, or plotchangelog from devscripts; then you've used a program that grew up in my bin. I think there's some useful stuff in there still.

You can browse my bin at;a=tree;f=bin.


This brings up a text editor for writing a blog entry in, then works out a filename for the entry based on its title, writes the file, commits it to git, and updates the blog. Fairly specific to my blogging setup, which uses ikiwiki now; older versions worked with pyblosxom instead.


This is the script that I use for building Debian packages.


This is the script I use for running lintian and other checks on a Debian package I've built. It displays all sorts of useful info in a pager.


This is the script that I use for releasing Debian packages.


This is a script that release calls, which converts a debian changelog into a news item for a package on this wiki.


This is my Download Queue program. Uses rsync to synchronise files, very handy if you're on a slow modem link.

(Now obsoleted by git-annex)


I keep my crontabs in git and this handles loading them into cron. Supports some handy features.


Given a list of architectures on command line or stdin, outputs any of the released debian arches not in the list


What I use for tailing logfiles. Determines dynamically what files are available to tail, and tails without wasting the last line on the screen to display a blank line with a cursor on it (which tail normally does, and which sucks on 3 line xterms).


Sshs into a machine and starts a screen session. Auto-reconnects. Goto considered wonderful!


I keep a file that records all the files on archival CDs that I burn; this updates the file. Uses vim folding markers to make it easy to browse the file in vim; the file is also always stored compressed. (It's big.)


Outputs approximate time of sunrise. If run as sunset, outputs that instead.

It does have to have LAT/LONG hardcoded into it though.


This makes su actually run the the sudo command, if sudo is present. Nice to not have to type the password every time when suing, although I wrote it before I was aware of "sudo su".