Before it's non-embarrassingly releasable:
- - render HTTP access control more sane.
- * we should have the configurable option to use HTTP Basic
- authentication or Linux magic /proc/net/tcp
- * a third option, and the default one, should be to _try_ to use
- magic auth, and fall back to HTTP Basic if unavailable
-
- sort out the command line syntax
* I think there should be a unified --mode / -M for every
running mode, possibly without the one-letter option for the
* there should be some configurable options:
+ range limits on the age display
+ server address in httpd mode
+ + HTTP authentication: specify username and/or password, the
+ latter by at least some means which doesn't involve it
+ showing up in "ps"
- - do some configurability for the disk scan
- * wildcard-based includes and excludes
- + wildcards can act on the last pathname component or the
- whole lot
- + include and exclude can be interleaved; implicit "include
- *" before any
- * reinstate filesystem crossing, though not doing so should
- remain the default
-
- - polish up disk-scan progress reporting
- * by default it should be conditional on isatty(2)
- * manual override to enable or disable
- * we should find rather than guessing the terminal width
-
- - work out what to do about atimes on directories
+ - work out what to do about atimes on directories in the absence of
+ the Linux syscall magic
* one option is to read them during the scan and reinstate them
after each recursion pop. Race-condition prone.
- * marking them in a distinctive colour in the reports is the
- other option.
+ * marking them in a distinctive colour in the reports is another
+ option.
+ * a third option is simply to ignore space taken up by
+ directories in the first place; inaccurate but terribly simple.
+ * incidentally, sometimes open(...,O_NOATIME) will fail, and
+ then we have to fall back to ordinary open. Be prepared to do
+ this, which probably means getting rid of the icky macro
+ hackery in du.c and turning it into a more sensible run-time
+ abstraction layer.
- make a final decision on the name!
+ - man page, licence, online help.
+
Future directions:
- run-time configuration in the HTTP server
results over the net to another machine where they'd be
indexed; in particular, this way the indexing machine could be
64-bit even if the machine owning the filesystems was only 32.
- + ability to build a database _and_ immediately run one of the
- ongoing interactive report modes (httpd, curses) would seem
- handy.
+ + in the other direction, ability to build a database _and_
+ immediately run one of the ongoing interactive report modes
+ (httpd, curses) in a single invocation would seem handy.
- portability
+ between Unices:
* autoconf?
* configure use of stat64
* configure use of /proc/net/tcp
+ * configure use of /dev/random
+ * configure use of Linux syscall magic replacing readdir
+ + later glibcs have fdopendir, hooray! So we can use that
+ too, if it's available and O_NOATIME is too.
* what do we do elsewhere about _GNU_SOURCE?
- + further afield: is there in fact any non-Unix OS that supports
- atimes and hence can be used with agedu at all?
- * yes! http://msdn.microsoft.com/en-us/library/ms724290.aspx
+ + http://msdn.microsoft.com/en-us/library/ms724290.aspx suggest
+ modern Windowses support atime-equivalents, so a Windows port
+ is possible in principle. Would need to modify the current
+ structure a lot, to abstract away (at least) memory-mapping of
+ files, details of disk scan procedure, networking for httpd,
+ the path separator character (yuck). Unclear what the right UI
+ would be on Windows, too; command-line exactly as now might be
+ considered just a _little_ unfriendly. Or perhaps not.