Recently, I needed to add some simple shell scripts to automate various tasks for Cargo projects. I don’t really like non portable scripting, so I was this close to writing yet another build system, when luckily I realized that built-in Cargo features already allow to use Rust for “scripting”
See the blog-post for details, or jump strait to the example of usage: https://github.com/matklad/libsyntax2/commit/bb381a7ff7a21cad98d80005a81f2586684f80a0.
Oh wow… this is great!
I guess this can be used to build a release-tool for imag - because imag is a workspace project with over 50 crates, releasing is very hard. When doing a release in imag, I have to release the crate which is on the very bottom of the dependency graph first and slowly work myself up the stack.
Of course this should be supported by cargo itself, but until it is it might be implemented using this mechanism plus some functionality for building the dependency graph.
Either way, thanks for this article, nice read!