AutoDeploy
Reinventing the wheel
Lately, I’ve been experimenting with reinventing the wheel. I got tired of running manual builds on the VPS that hosts this website and a few other tools I use, so I decided to write a sort of task runner to teach myself rust along the way.
The Wheel
Apart from the fact that reinventing make is really not a good idea, I have also realized that
whatever solution I have conjured up is even worse. The configuration file for
bookregator is an awful mish-mash of raw calls using
the rust stdlib and bash -c calls. I have a mind to add spec option to specify a shell to run
some tasks in, but I fear that that will just make everything much messier. I suppose I’m the
only person who is realistically going to use this, so I doubt it’ll be a problem.
Possible poor ideas
I’m thinking of writing a “hooks” system, similar to what you might see in the pacman package manager. Maybe this will evolve into a task-graph based system of deployment, but I do like the
current simplicity of my explicit declaration system. Maybe a cross between the two? That is
an incredibly silly idea.
Since the entire project can be used as a library, I briefly pondered the implementation of a socket API that would allow me to run a client that could log build completions. I’d hide
this behind a feature.