Decided to merge three server programs into one, amongst other stuff…
No more IPC stuff for now, will implement a control socket in the next minor release or something.
Merged Supervisor, ChatBackend and WebServer into one program, decided it’s better to just use goroutines, scalability stuff can wait.
Log level setting
Used that quirk of calling it in variable definition thing again to set log level early.
Database interface is now accessed directly, database wrapper now ignores all
Key not found errors.
Now there’s early initialization (ran in init function of main program) and late initialization (ran after server threads started) and the web server thread now uses a golang channel to receive the ready signal instead of the weird process signalling quirk I did before.
I think it will work next minor release after I implement some better plugin loading mechanism, since the process signalling stuff was the only thing I used that wasn’t on Windows.
Update: Just tried building it with
GOOS=windows and golang gave me a
-buildmode=plugin not supported on windows/amd64, no Windows support then.
UserInfo and GuildInfo types are persisted, but now directly fetched, and also formatted internally, I also implemented user fetching for a future web interface use, aimed to replace the popular proprietary service that does this.
No more v0.0.1-rewrite, since updates won’t be so big changes like before I’ll be pushing proper versions and also tagged.