Initial commit of a basically working but severely unpolished
utility which does "du" only more usefully: its key feature is that
it breaks down your disk space usage simultaneously by subdirectory
and by atime, so that you can identify large chunks of data which
are simply gathering dust.


git-svn-id: svn://svn.tartarus.org/sgt@8224 cda61777-01e9-0310-a592-d414129be87e
HTML-escaping mode is bound to come in handy.


git-svn-id: svn://svn.tartarus.org/sgt@8226 cda61777-01e9-0310-a592-d414129be87e
Introduce something more like an actual framework for httpd
authentication. We now support magic /proc/net auth, HTTP Basic
auth, and no auth; a command-line switch chooses between those three
or the fourth default choice of falling back from /proc/net to Basic.


git-svn-id: svn://svn.tartarus.org/sgt@8228 cda61777-01e9-0310-a592-d414129be87e
Tidy up the reporting of the disk scan progress on standard error.
It's now conditional by default on stderr being a tty; it's
configurable on or off manually if necessary; and the terminal width
is obtained by TIOCGWINSZ instead of by guesswork.


git-svn-id: svn://svn.tartarus.org/sgt@8229 cda61777-01e9-0310-a592-d414129be87e
Additional options to control the disk scanning: wildcard-based
includes and excludes, control of the cross-fs-boundary prohibition.


git-svn-id: svn://svn.tartarus.org/sgt@8230 cda61777-01e9-0310-a592-d414129be87e
Stop having a default action mode. All actions now require a
specific option to enable them.


git-svn-id: svn://svn.tartarus.org/sgt@8233 cda61777-01e9-0310-a592-d414129be87e
Centralise command-line option definitions, using disgusting macros
just out of curiosity to see how well they work for the job.


git-svn-id: svn://svn.tartarus.org/sgt@8234 cda61777-01e9-0310-a592-d414129be87e
Fold some brief and inadequate online help into the ghastly command
line macros.


git-svn-id: svn://svn.tartarus.org/sgt@8235 cda61777-01e9-0310-a592-d414129be87e
Add --prune as an alternative to --exclude, the difference being
that excluding a directory still scans its contents whereas pruning
one chops its entire branch out of the directory tree.


git-svn-id: svn://svn.tartarus.org/sgt@8236 cda61777-01e9-0310-a592-d414129be87e
Protect against division by zero when handling directories with
total size of zero.


git-svn-id: svn://svn.tartarus.org/sgt@8237 cda61777-01e9-0310-a592-d414129be87e
Filter literally-zero-size directories out of the display, since
they typically arise from --exclude-path.


git-svn-id: svn://svn.tartarus.org/sgt@8238 cda61777-01e9-0310-a592-d414129be87e
Configurable age range represented by the colour coding in the HTML
output.


git-svn-id: svn://svn.tartarus.org/sgt@8239 cda61777-01e9-0310-a592-d414129be87e
More HTTP server configuration: allow user-chosen address+port and
HTTP Basic authentication data.


git-svn-id: svn://svn.tartarus.org/sgt@8240 cda61777-01e9-0310-a592-d414129be87e
Prepare to have a parametrisable path separator character. Currently
the value of 'pathsep' never changes, but the code should now be
ready to cope when it does.


git-svn-id: svn://svn.tartarus.org/sgt@8241 cda61777-01e9-0310-a592-d414129be87e
Change the index file format to explicitly indicate the appropriate
path separator.


git-svn-id: svn://svn.tartarus.org/sgt@8242 cda61777-01e9-0310-a592-d414129be87e
--scan-dump and --load options, for moving dump files around and
rebuilding index files.


git-svn-id: svn://svn.tartarus.org/sgt@8243 cda61777-01e9-0310-a592-d414129be87e
Fix gormlessness in html.c introduced in r8241.


git-svn-id: svn://svn.tartarus.org/sgt@8244 cda61777-01e9-0310-a592-d414129be87e
Fix the various issues centring around the anomaly in Unix pathname
syntax that the canonical name of "/" ends in a trailing '/'.


git-svn-id: svn://svn.tartarus.org/sgt@8245 cda61777-01e9-0310-a592-d414129be87e
Minor tweaks: turn the "http://address:port/0" URL of the topmost
directory in the index into the natural "http://address:port/", and
also stop putting a self-link on the top-level page if the pathname
involved is "/".


git-svn-id: svn://svn.tartarus.org/sgt@8246 cda61777-01e9-0310-a592-d414129be87e
Now every action is encapsulated as a command-line option and its
argument, introduce the possibility of doing more than one such
action in the same run. In particular, this means you can do a scan
and immediately launch a web server, which I suspect will be a
popular mode of use.


git-svn-id: svn://svn.tartarus.org/sgt@8247 cda61777-01e9-0310-a592-d414129be87e