Tue, 08 May 2018 21:02:54 +0000
Since "last week": I have
- implemented the switch config stuff I talked about
- worked out a possibly slightly icky way to define one-shot services with monit - monit
check processexpects to read a pidfile and verify that the corresponding process exists, which is not a good match for a configuration script that runs only once and then exits. So instead we create a
/runafter running the script and use
check fileto see if we've been here.
- devised some moderately sensible data structures and code to specify network interfaces and stuff.
- added a DHCP client . Which in principle was dead easy but in practice would have been even easier if I'd realised earlier that
udhcpcpdpdc(sorry, still haven't learned how to stop spelling that one)
...drequires its config script to have the executable bit set - it fails silently if it's not.
What's left for Milestone 0? Nothing really, apart from cleanup.
There is a shockingly large amount of "arbitrary" involved in deciding
what goes in which nix file, and there really ought to be some kind of
principled separation of what/where/how (what the app does, the
specifics of the hardware where it runs, and the implementation
details), and there are other cleanups to do too. Also need to do
something like overlays so that the packages defined in
override the ones in
nixpkgs. Also also need to update it to work
with nixpkgs master - or at least with 18.03 without my random
patches. Also also also add e2fsutils so we don't have to plug the
USB disk in somewhere else just to fsck it.
In other news, if you can read this then you are looking at my new shell host and the DNS for
ww.telent.net has updated. Still haven't moved everything off the old one, but this is just one more step (and a large one) along the way.