nickel-lang / organist

Control all your tooling from a single console
MIT License
361 stars 20 forks source link

Fancier rust shells #179

Closed jneem closed 1 month ago

jneem commented 7 months ago

Organist's rust shell uses the rust toolchain from nixpkgs, which is usually fine but lacks a few options. In particular, I often want to

All these options (and more) are supported by nix-community/fenix, so maybe a nice organist interface could be built on top of that?

I had a quick stab at it and got something working, which I will add as an attachment. It requires modifying the template's flake.nix to pass the fenix input like

    organist.flake.outputsFromNickel ./. (inputs // { fenix = inputs.fenix.packages.${system}; }) {};

because I couldn't figure out how else to thread the system through...

project.ncl.txt

thufschmitt commented 7 months ago

Nice, thanks!

I'll look at how this can be upstreamed.

Some quick thoughts:

jneem commented 7 months ago

You shouldn't need the { fenix = inputs.fenix.packages.${system}; } trick in the Flake

Indeed I don't, thanks! I was so convinced that threading through the system was going to be annoying that I didn't think to check whether it worked without it...

Maybe the components arrays could be replaced by a record of booleans

Yes, that works nicely. I even did the same to extraTargets, which is nice with autocomplete because the target names are long. I put the result here, since there are now a few files involved.

thufschmitt commented 1 month ago

Fixed by #180