70322ae3 |
1 | TODO list for agedu |
2 | =================== |
3 | |
4 | Before it's non-embarrassingly releasable: |
5 | |
70322ae3 |
6 | - sort out the command line syntax |
7 | * I think there should be a unified --mode / -M for every |
8 | running mode, possibly without the one-letter option for the |
9 | diagnostic sorts of things |
10 | * there should be some configurable options: |
11 | + range limits on the age display |
12 | + server address in httpd mode |
812e4bf2 |
13 | + HTTP authentication: specify username and/or password, the |
14 | latter by at least some means which doesn't involve it |
15 | showing up in "ps" |
70322ae3 |
16 | |
17 | - do some configurability for the disk scan |
18 | * wildcard-based includes and excludes |
19 | + wildcards can act on the last pathname component or the |
20 | whole lot |
21 | + include and exclude can be interleaved; implicit "include |
22 | *" before any |
23 | * reinstate filesystem crossing, though not doing so should |
24 | remain the default |
25 | |
26 | - polish up disk-scan progress reporting |
27 | * by default it should be conditional on isatty(2) |
28 | * manual override to enable or disable |
29 | * we should find rather than guessing the terminal width |
30 | |
31 | - work out what to do about atimes on directories |
32 | * one option is to read them during the scan and reinstate them |
33 | after each recursion pop. Race-condition prone. |
34 | * marking them in a distinctive colour in the reports is the |
35 | other option. |
36 | |
37 | - make a final decision on the name! |
38 | |
39 | Future directions: |
40 | |
41 | - run-time configuration in the HTTP server |
42 | * I think this probably works by having a configuration form, or |
43 | a link pointing to one, somewhere on the report page. If you |
44 | want to reconfigure anything, you fill in and submit the form; |
45 | the web server receives HTTP GET with parameters and a |
46 | referer, adjusts its internal configuration, and returns an |
47 | HTTP redirect back to the referring page - which it then |
48 | re-renders in accordance with the change. |
49 | * All the same options should have their starting states |
50 | configurable on the command line too. |
51 | |
52 | - polish the plain-text output: |
53 | + do the same formatting as in HTML, by showing files as a |
54 | single unit and also sorting by size? (Probably the other way |
55 | up, due to scrolling.) |
56 | + configurable recursive output depth |
57 | |
58 | - curses-ish equivalent of the web output |
59 | + try using xterm 256-colour mode. Can (n)curses handle that? If |
60 | not, try doing it manually. |
61 | |
62 | - cross-module: |
63 | + figure out what to do about scans starting in the root |
64 | directory! |
65 | * Currently we end up with a double leading slash on the |
66 | pathnames, which is ugly, and we also get a zero-length |
67 | href in between those slashes which means the web interface |
68 | doesn't let you click back up to the top level at all. |
69 | * One big problem here is that a lot of the code assumes that |
70 | you can find the extent of a pathname by searching for |
71 | "foo" and "foo^A", trusting that anything inside the |
72 | directory will begin "foo/". So I'd need to consistently |
73 | fix this everywhere so that a trailing slash is disregarded |
74 | while doing it, but not actually removed. |
75 | * The text output gets it all wrong. |
76 | * The HTML output is fiddly even at the design stage: where |
77 | would I _ideally_ put the link to click on to get back to |
78 | /? It's unclear! |
79 | |
80 | - more flexible running modes |
81 | + decouple the disk scan from the index building code, so that |
82 | the former can optionally output in the same format as --dump |
83 | and the latter can optionally work from input on stdin (having |
84 | also fixed the --dump format in the process so it's perfectly |
85 | general). Then we could scan on one machine and transfer the |
86 | results over the net to another machine where they'd be |
87 | indexed; in particular, this way the indexing machine could be |
88 | 64-bit even if the machine owning the filesystems was only 32. |
89 | + ability to build a database _and_ immediately run one of the |
90 | ongoing interactive report modes (httpd, curses) would seem |
91 | handy. |
92 | |
93 | - portability |
94 | + between Unices: |
95 | * autoconf? |
96 | * configure use of stat64 |
97 | * configure use of /proc/net/tcp |
98 | * what do we do elsewhere about _GNU_SOURCE? |
99 | + further afield: is there in fact any non-Unix OS that supports |
100 | atimes and hence can be used with agedu at all? |
101 | * yes! http://msdn.microsoft.com/en-us/library/ms724290.aspx |