-
Notifications
You must be signed in to change notification settings - Fork 12
Have an ex-post discussion about the design of this #3
Comments
I'd like to see a rewrite of this utility in a better language than bash before it gets too much farther. Rust would be particularly useful since we could make use of rnix-parser to get information about the flake (I've had some crazy ideas in my head regarding a nixless bootstrap 😅 ). In addition, I'm considering drafting a proposal to the Nix cli for an official extension mechanism of some kind, perhaps similar to gits, so if that does eventually take shape, we'll want to be ready for it. |
I like the idea of using a better language than
In order to remain composable (after all that's the idea behind using the module system), some scripted language would be imperative. The main selling point using the module system here is that people can quickly compose their own system ctl tool. |
I dunno if it's so important than people be able to modify this script though is it? What would be an example use case for that? Keep in mind, I may not yet fully understand the direction you are pushing here, since I'm still imagining a simple replacement for my simple bash script. |
Over the past refactorings On the other hand, I realize the genuine value of a The So with that in mind and a modular and composable command aggregation system like the proposed one in place, we can:
Making this composable should also help us a bit to do the spring cleaning which in my opinion is in order, before we update the docs next time. As for the language of choice, I'd favor something loosely coupled and very scriptable. I'm not convinced that bash is the best choice: I've spent roughly 3-4 hours debugging some bashism that have fallen behind in my main memory. On the other hand, enforcing any scripting language probably neither is the experience users would expect to quickly hack their system ctl command. Maybe we can provide a set of "trivial builders" (besides bash, perl and C) that can be used to quickly hack together subcommands in a variety of languages. I also realize that we are getting (fortunately not dangerously) close to a possible I see the main distinction in that Whereas a nix plugin system is a way to expand the nix command and to factorize its development (and maybe unstuck flakes), |
Maybe the contracts required from sub-commands to "blend in" is not the best idea we could have come up, so have that discussion here.
The text was updated successfully, but these errors were encountered: