I have a strong resentment towards repetitive and repeated tasks and often go to considerable lengths to semi-automate such things. Fortunately, this is one area where UNIX makes things rather easy through scripting. I mostly use bourne shell scripts since I haven't really taken the time to learn perl or tcl or python and often sh will suffice, well sort of.
One script I use a lot is
update-all that will iterate across all directories in the current directory and perform an update. This is really handy when tracking a number of projects on places like
cl-net or
sf. The idea is that one checks out a particular project and then later runs
update-all in the directory above and it will update all sandboxes (provided it knows about the different kind of sandboxes).
But even more interesting than downloading stuff is building stuff, so I have made myself a
build-core script that is based on a kind of configuration file for each package (such as McCLIM) such that I easily can build a new core file with the latest and greatest version. Two examples of such configuration files are
clx.lisp and
clim.lisp that will build a core containing CLX and one for McCLIM (which is based on the CLX core). The
build-core script also uses a common setup file, named in lisp pun style
common.lisp such that one can make common set ups across different kinds of lisps.
The nice thing about bulding cores is that start up is a lot faster, which is quite relevant for large package such as McCLIM but the downside is that combining things becomes more difficult since one cannot just build a core containing package A and another core containing library B and start a lisp instance combining the two cores.
Obviously, these scripts have been tailored for my ideosyncratic tastes but they are posted above in the hope that they may serve as inspiration. I know that this post also is rather scarce on how to use the scripts, but feel free to contact me for more info in the case where the code does not suffice.
Tags: lisp, unix