4 ms·
I suggest the post author and you look into nu as the package build language. It's uniquely suited for this task, being a cross-platform shell[1] with real prog
by Aerbil313 2y ago
I suggest the post author and you look into nu as the package build language. It's uniquely suited for this task, being a cross-platform shell[1] with real programming language features, data types, and using built-in uutils instead of relying on platform-dependent coreutils. It also limits mutability[2], favoring a more functional than imperative approach, which would at least theoretically help with reproducibility. A guy from Determinate Systems recently made an experiment on integrating nushell to nix and the results were positive. Take a look: https://determinate.systems/posts/nuenv/ https://determinate.systems/posts/nuenv/
1: https://www.nushell.sh/ https://www.nushell.sh/
2: https://www.nushell.sh/book/thinking_in_nu.html#variables-are-immutable https://www.nushell.sh/book/thinking_in_nu.html#variables-ar...
- kylewlacy 2y agoNushell has definitely been on my radar for a while! but I missed DetSys was playing around with it, I'll have to give that a look One neat thing about Brioche is that Bash isn't really baked into it the same way as the Nix ecosystem. In a lot of the docs and examples, I used the `std.runBash` Brioche function for running scripts, but that's a fairly simple 11-line function[^1]. I wanted to make it just as easy to add `runZsh`, `runFish`, `runNushell`, etc. functions that work just as well as Bash (and they could either be put in the std library or in their own packages). So hopefully, there will be a Brioche `runNushell` function in the near future :) [^1]: https://github.com/brioche-dev/brioche-packages/blob/9fd51090a56cf83f4aa9c5002b78f2b2054ad3ad/packages/std/extra/run_bash.bri#L37-L47 https://github.com/brioche-dev/brioche-packages/blob/9fd5109...