theleagueof / fontship

A font development toolkit and collaborative work flow.
GNU Affero General Public License v3.0
91 stars 7 forks source link

Rewrite CLI in Rust #98

Closed alerque closed 3 years ago

alerque commented 3 years ago

It turns out I wasn't having very much fun with Python. I thought this project would require it, but it turns out the CLI is just a fancy bit of glue executing other tools and it doesn't really matter what controller is written in. Since 90% of the CLI code can be shared with CaSILE, it just wasn't making sense for me to keep trying to solve the same problems it two languages, one of which I love, the other I just live with.

I still think it will be useful to reach deep into Python libraries to extract information, but this can be done using Python bindings from Rust almost as easily as from Python itself, and way faster.

This should be almost parity with previous releases. It was really hard not to also build in new features while working on this, but I tried.

The only significant different (as of opening the PR) is that this version needs to be installed to work ... scratch that this is not a regression, the Python version wouldn't work that way either. To build in debug mode use ./configure --datarootdir=$(cd .. ; pwd) so that the built binary knows where to find resources. I think there will be a way around this to enable both real and debug modes, but so far my attempts have been pretty ugly.