Neil: Workflow Utilities

by Neil Mitchell

A tool for performing common actions run by Neil. Many of these commands enhance specific aspects of my workflow. While other people are welcome to use this tool, it is not officially supported.

Darcs Enhancements

All these commands can either be run from a darcs repo, or from a directory containing darcs repos below it.

neil whatsnew

Says if there are patches to pull, patches to push, or local changes.

neil pull

Standard darcs pull.

neil push

Standard darcs push.

neil send

Standard darcs send, but to a tarball if there are multiple repos around.

Cabal Enhancements

neil sdist

cabal sdist, plus some checks for well-formedness.

Latex Enhancements

All these tools are designed to work with darcs repo's of lhs2tex documents. Each command is documented separately. To use the tool, place the paper program in your $PATH variable.

General Commands


All commands can be given either a list of .tex files, or a directory containing .tex files. If no files or directories are specified the command defaults to the current directory.

Numeric Parameters

Commands that take numeric parameters can be given them in the form -n, -n.. or -n..m, with the usual Haskell meanings.

paper push

Uses darcs to push files to an SSH repo, as described in this blog post. No parameters.

paper make

paper wc

paper graph

paper haskell

paper talk

Create the directory obj/talk containing spoken versions of the files, divided up into section chunks. This command requires ptts to do the text-to-speech conversion. If lame is available, the resulting files will be compressed into MP3 format. Accepts numeric ranges.

paper ref

Check that all references match up. All undefined label commands and multiply defined ref commands are flagged. No parameters.

paper todo

Check that no \todo commands appear. No parameters.

paper check

Perform all the automated checks available. Currently ref and todo.