This gets a terminal spinner to spin after a short delay like in
vere. This also fixes a bug in termRefreshLine which was screwing
up redisplay of the terminal spinner; it hadn't been translated
from C properly.
Use the terminal-progress-bar package to display a progress bar
during replay, when there are jobs that need to be replayed. Bumps
the lts resolver so we get access to this package.
This performs all normal filesystem operations. We can take
filesystem hash snapshots on startup, write the contents of an
%ergo to disk, send changes to Urbit with an %into, and finally
delete mount points when they are %ogre.
This doesn't deal with updating an initial filesystem on first
run with -A, or with acquiring a lockfile, which should happen
elsewhere.
Can take filesystem hash snapshots on startup, and can write the
contents of an %ergo to disk.
The compute thread should take an event or a save request or a
shutdown request. We now take snapshots every 120 seconds like
vere does, and take a snapshot before clean shutdown.
(Also changes the terminal driver so that it doesn't unboundedly
block shutdown.)
Once the solid pill was updated, we can boot the solid pill with
king haskell, solid a pill inside a fakezod running under king,
and then boot another ship using king with the pill we solided
using king.
Using websockets because it would be nice to eventually have a terminal
in the Electron client.
This is prototype-quality code. Using the built-in client/server from the
`websockets` package, but that's just for testing.
After looking at vty for a bit, I decided to just do a straight port
of term.c's raw output code. This gets the "~zod:dojo" in the right
position, though the other logging output screws things up a bit.
Joe told me to look at the Jaque terminal and I just did. That uses
the Lanterna Java library to handle terminal output. Joe then suggested
that I move the entire system here to curses or another similar library.