lilgit
lilgit copied to clipboard
Better daemonization/service model
The current MVP model uses bash coproc for bi-directional I/O. Convenient for dev, but has a few issues:
- the daemon is actually attached to the shell...
- it may show up in your window/tab title
- terminal may block on exit because lilgitd is running (workaround at least in macOS Terminal.app: Terminal > Preferences > Shell > add
lilgitdto the ask-before-closing exception list) - ~common signals for the shell may kill it~ (tentatively addressed with dc9f749fb808bfb254098a247a7afc2548425f57)
- there's technically a process per terminal; it's pretty small (a few mb), but it is a little wasteful if you run many terminals (as I do)
An obvious answer is "do what gitstatus does", and I assume named pipes/fifos are part of the solution, but this is a bit of a blind spot for me. I've done one-way client communication to a service over a fifo, but I'm not sure what the simplest way to design around multi-client is.