Turn `lix-diff` into a multicall binary to add more subcommands (e.g. `lix-list` and `lix-history`)

#7 · open · 8 comments

View on GitHub ↗

jalil-salame

Since we have `nvd diff` covered by `lix-diff` it would be nice to also have `lix-list` as an analog to `nvd list`. I am more interested in `nvd list` than `nvd history`, bu that might also be nice to provide. We probably shouldn't call it `lix-list` though, since they might want to do something like `cargo list` (that lists all subcommands). I would be willing to put in the work to turn `lix-diff` into a multicall binary, this means you would install a base program (e.g. `tgc-lix`) and create symlinks to it (e.g. `lix-diff` and `lix-list`), depending on whether it was called by `lix-diff` or `lix-list` it will do something different. `clap` supports this natively so it shouldn't be a big change. Some benefits of turning it into a multicall binary are: - Smaller size on disk since we don't have duplicated dependencies - Easier to share code between commands (don't have to do a `lib`/`bin` split) - Its honestly kinda neat Some drawbacks: - The project might need to be renamed (its no longer just `lix-diff`) - Longer build times if you are changing a single tool

Comments

isabelroses

I am happy to have more subcommands included! The symlink idea seems quite feasible and like the best approach for backwards compatibility. I didn't really care for either `nvd list` nor `nvd history` but if your willing to implement the list subcommand I am happy to merge it if it seems like it works. Though I wouldn't be confident maintaining it. So if you would like I could add you as a maintainer of the repo :D Also i would like to avoid a lib/bin system too, so multicall binary seems good. And about the name, well it might need some brain storming :p

jalil-salame

I'd be happy to maintain that code c: I'm planning to use `lix-list` to ensure my home-manager module contains reasonable stuff when you disable the GUI parts, since it seems to include fonts rn. I might also add it to https://git.salame.cl/jalil/nix-flake-outputs-size, that would ensure I'm testing it frequently.

jalil-salame

I was thinking `tgc-lix-plugins` (tgirlcloud) could be a boring but descriptive name for it, I'd like it to have a fun name, but I can't come up with anything right now.

isabelroses

> I was thinking tgc-lix-plugins (tgirlcloud) could be a boring but descriptive name for it, I'd like it to have a fun name, but I can't come up with anything right now. I'm quite happy with this name. But if you'd prefer a cooler name im so down :D

jalil-salame

Do you have a fav icecream flavour? It's in topic for lix after all. I'm partial to Lemon Sorbet. Then we could have a cute logo for the repo c:

isabelroses

Ohh. Im a fan of Lemon Sorbet too! Seems like a good choice.

jalil-salame

Would we then call the tool Lemon Sorbet? The binary being `lemon-sorbet` (thus `lemon-sorbet lix-diff` would call `lix-diff`). Maybe this motivates me to learn Inkscape and make a cute logo c:

Airradda

If you wanted to keep on the ice cream theme, but reflect that this is multiple tools in one, then might I suggest a couple: - `Neapolitan` - `Rainbow Sorbet` 🏳️‍🌈 - `Swirl` Also, according to nix-locate, somehow `nea` and `swirl` have not been used as binary names before.